示例#1
0
文件: select.c 项目: nagyistge/ctn
static CONDITION
queryAE(TBL_HANDLE ** handle,
	DMAN_APPLICATIONENTITY * workRecord,
	DMAN_APPLICATIONENTITY * criteriaRecord, LST_HEAD * head,
	CONDITION(*callback) (), long *count, void *ctx)
{
    CONDITION
    cond;
    TBL_CRITERIA
	criteriaList[3];

    static TBL_FIELD
        fields[10];
    int
        i;
    CONTEXT
	context;

    i = 0;
    if (criteriaRecord->Flag & DMAN_K_APPLICATION_TITLE) {
	criteriaList[i].FieldName = "Title";
	criteriaList[i].Operator = TBL_EQUAL;
	TBL_LOAD_STRING(&criteriaList[i].Value, criteriaRecord->Title);
	i++;
    }
    if (criteriaRecord->Flag & DMAN_K_APPLICATION_NODE) {
	criteriaList[i].FieldName = "Node";
	criteriaList[i].Operator = TBL_EQUAL;
	TBL_LOAD_STRING(&criteriaList[i].Value, criteriaRecord->Node);
	i++;
    }
    criteriaList[i].FieldName = NULL;

    i = 0;
    fields[i].FieldName = "Title";
    TBL_EXISTING_STRING(&fields[i].Value, workRecord->Title);
    i++;
    fields[i].FieldName = "Node";
    TBL_EXISTING_STRING(&fields[i].Value, workRecord->Node);
    i++;
    fields[i].FieldName = "Comment";
    TBL_EXISTING_STRING(&fields[i].Value, workRecord->Comment);
    i++;
    TBL_FIELD_LOAD_NUM(fields[i], "Port", workRecord->Port, TBL_SIGNED4);
    i++;
    fields[i].FieldName = "Organization";
    TBL_EXISTING_STRING(&fields[i].Value, workRecord->Organization);
    i++;

    fields[i].FieldName = NULL;

    context.lst = &head;
    context.record = (DMAN_GENERICRECORD *) workRecord;
    cond = TBL_Select(handle, criteriaList,
		      fields, count, callbackAE, &context);
    if (cond == TBL_NORMAL)
	return DMAN_NORMAL;
    else
	return 0;
}
示例#2
0
文件: select.c 项目: nagyistge/ctn
static CONDITION
queryVideoImageDest(TBL_HANDLE ** handle, DMAN_VIDEOIMAGEDEST * workRecord,
		    DMAN_VIDEOIMAGEDEST * criteriaRecord, LST_HEAD * head,
		    CONDITION(*callback) (), long *count, void *ctx)
{
    CONDITION
    cond;
    TBL_CRITERIA
	criteriaList[4];

    static TBL_FIELD
        fields[4];
    int
        i;
    CONTEXT
	context;

    i = 0;
    if (criteriaRecord->Flag & DMAN_K_VIDEOIMAGE_REQUESTING) {
	criteriaList[i].FieldName = "RequestingTitle";
	criteriaList[i].Operator = TBL_EQUAL;
	TBL_LOAD_STRING(&criteriaList[i].Value, criteriaRecord->RequestingTitle);
	i++;
    }
    if (criteriaRecord->Flag & DMAN_K_VIDEOIMAGE_RESPONDING) {
	criteriaList[i].FieldName = "RespondingTitle";
	criteriaList[i].Operator = TBL_EQUAL;
	TBL_LOAD_STRING(&criteriaList[i].Value, criteriaRecord->RespondingTitle);
	i++;
    }
    if (criteriaRecord->Flag & DMAN_K_VIDEOIMAGE_IMAGETYPE) {
	criteriaList[i].FieldName = "ImageType";
	criteriaList[i].Operator = TBL_EQUAL;
	TBL_LOAD_STRING(&criteriaList[i].Value, criteriaRecord->ImageType);
	i++;
    }
    criteriaList[i].FieldName = NULL;

    i = 0;
    TBL_FIELD_DECLARE_STRING(fields[i], "RequestingTitle",
	  workRecord->RequestingTitle, sizeof(workRecord->RequestingTitle));
    i++;
    TBL_FIELD_DECLARE_STRING(fields[i], "RespondingTitle",
	  workRecord->RespondingTitle, sizeof(workRecord->RespondingTitle));
    i++;
    TBL_FIELD_DECLARE_STRING(fields[i], "ImageType",
		      workRecord->ImageType, sizeof(workRecord->ImageType));
    i++;
    fields[i].FieldName = NULL;

    context.lst = &head;
    context.record = (DMAN_GENERICRECORD *) workRecord;
    cond = TBL_Select(handle, criteriaList, fields, count,
		      callbackVideoImageDest, &context);
    if (cond == TBL_NORMAL)
	return DMAN_NORMAL;
    else
	return 0;
}
示例#3
0
文件: select.c 项目: nagyistge/ctn
static CONDITION
queryFISAccess(TBL_HANDLE ** handle,
	       DMAN_FISACCESS * workRecord,
	       DMAN_FISACCESS * criteriaRecord, LST_HEAD * head,
	       CONDITION(*callback) (), long *count, void *ctx)
{
    CONDITION
    cond;
    TBL_CRITERIA
	criteriaList[2];

    static TBL_FIELD
        fields[10];
    int
        i;
    CONTEXT
	context;

    i = 0;
    if ((criteriaRecord->Flag & DMAN_K_FISACCESS_TITLE)) {
	criteriaList[i].FieldName = "Title";
	criteriaList[i].Operator = TBL_EQUAL;
	TBL_LOAD_STRING(&criteriaList[i].Value, criteriaRecord->Title);
	i++;
    }
    criteriaList[i].FieldName = NULL;

    i = 0;
    TBL_FIELD_DECLARE_STRING(fields[i], "Title", workRecord->Title,
			     sizeof(workRecord->Title));
    i++;
    TBL_FIELD_DECLARE_STRING(fields[i], "DbKey", workRecord->DbKey,
			     sizeof(workRecord->DbKey));
    i++;
    TBL_FIELD_DECLARE_STRING(fields[i], "Owner", workRecord->Owner,
			     sizeof(workRecord->Owner));
    i++;
    TBL_FIELD_DECLARE_STRING(fields[i], "GroupName", workRecord->GroupName,
			     sizeof(workRecord->GroupName));
    i++;
    TBL_FIELD_DECLARE_STRING(fields[i], "Comment", workRecord->Comment,
			     sizeof(workRecord->Comment));
    i++;
    TBL_FIELD_DECLARE_NUM(fields[i], "Access", TBL_SIGNED4, workRecord->Access,
			  sizeof(workRecord->Access));


    fields[++i].FieldName = NULL;

    context.lst = &head;
    context.record = (DMAN_GENERICRECORD *) workRecord;

    cond = TBL_Select(handle, criteriaList, fields, count, callbackFA, &context);
    if (cond == TBL_NORMAL)
	return DMAN_NORMAL;
    else
	return 0;
}
示例#4
0
文件: select.c 项目: nagyistge/ctn
static CONDITION
queryPrintServerCFG(TBL_HANDLE ** handle, DMAN_PRINTSERVERCFG * workRecord,
		    DMAN_PRINTSERVERCFG * criteriaRecord, LST_HEAD * head,
		    CONDITION(*callback) (), long *count, void *ctx)
{
    CONDITION
    cond;
    TBL_CRITERIA
	criteriaList[4];

    static TBL_FIELD
        fields[4];
    int
        i;
    CONTEXT
	context;

    i = 0;
    if (criteriaRecord->Flag & DMAN_K_PRINTSERVER_REQUESTING) {
	criteriaList[i].FieldName = "RequestingTitle";
	criteriaList[i].Operator = TBL_EQUAL;
	TBL_LOAD_STRING(&criteriaList[i].Value, criteriaRecord->RequestingTitle);
	i++;
    }
    if (criteriaRecord->Flag & DMAN_K_PRINTSERVER_RESPONDING) {
	criteriaList[i].FieldName = "RespondingTitle";
	criteriaList[i].Operator = TBL_EQUAL;
	TBL_LOAD_STRING(&criteriaList[i].Value, criteriaRecord->RespondingTitle);
	i++;
    }
    if (criteriaRecord->Flag & DMAN_K_PRINTSERVER_GQID) {
	TBL_CRITERIA_LOAD_NUM(criteriaList[i], "GQId", criteriaRecord->GQId,
			      TBL_SIGNED4, TBL_EQUAL);
	i++;
    }
    criteriaList[i].FieldName = NULL;

    i = 0;
    TBL_FIELD_DECLARE_STRING(fields[i], "RequestingTitle",
	  workRecord->RequestingTitle, sizeof(workRecord->RequestingTitle));
    i++;
    TBL_FIELD_DECLARE_STRING(fields[i], "RespondingTitle",
	  workRecord->RespondingTitle, sizeof(workRecord->RespondingTitle));
    i++;
    TBL_FIELD_DECLARE_NUM(fields[i], "GQId", TBL_SIGNED4,
			  workRecord->GQId, sizeof(workRecord->GQId));
    i++;
    fields[i].FieldName = NULL;

    context.lst = &head;
    context.record = (DMAN_GENERICRECORD *) workRecord;
    cond = TBL_Select(handle, criteriaList, fields, count,
		      callbackPrintServerCFG, &context);
    if (cond == TBL_NORMAL)
	return DMAN_NORMAL;
    else
	return 0;
}
示例#5
0
文件: fisget.c 项目: ccteng/dicomprop
static CONDITION
getStorageCommitReq(PRIVATE_HANDLE * h,
   FIS_DATA_TYPE criteriaType, char *uid, long listFlag, LST_HEAD * getList,
		    FIS_STORAGECOMMITREQRECORD * r, long *count)
{
    CONDITION
    cond;
    TBL_CRITERIA
	criteria[2];

    static TBL_FIELD fields[] = {
	{"TraUID", TBL_STRING, sizeof(storageCommitRequest.TraUID),
	    sizeof(storageCommitRequest.TraUID), 0,
	(void *) &storageCommitRequest.TraUID[0]},
	{"ReqAE", TBL_STRING, sizeof(storageCommitRequest.ReqAE),
	    sizeof(storageCommitRequest.ReqAE), 0,
	(void *) &storageCommitRequest.ReqAE[0]},
	{"ResAE", TBL_STRING, sizeof(storageCommitRequest.ResAE),
	    sizeof(storageCommitRequest.TraUID), 0,
	(void *) &storageCommitRequest.ResAE[0]},
	{"ReqDat", TBL_SIGNED4, sizeof(commitRequestDate),
	    sizeof(commitRequestDate), 0,
	(void *) &commitRequestDate},
	{"ReqTim", TBL_FLOAT4, sizeof(commitRequestTime),
	    sizeof(commitRequestTime), 0,
	(void *) &commitRequestTime},
	{"ResDat", TBL_SIGNED4, sizeof(commitResponseDate),
	    sizeof(commitResponseDate), 0,
	(void *) &commitResponseDate},
	{"ResTim", TBL_FLOAT4, sizeof(commitResponseTime),
	    sizeof(commitResponseTime), 0,
	(void *) &commitResponseTime},

	{NULL}
    };

    criteria[0].FieldName = criteria[1].FieldName = NULL;
    if (uid != NULL && uid[0] != '\0') {
	if (criteriaType == FIS_K_STORAGECOMMITREQ) {
	    TBL_CRITERIA_LOAD_BYTE(criteria[0], "TraUID", uid, TBL_STRING, TBL_EQUAL);
	}
    }
    (void) memset(&storageCommitRequest, 0, sizeof(storageCommitRequest));
    commitRequestDate = commitResponseDate = 0;
    commitRequestTime = commitResponseTime = 0.;

    storageCommitRequest.Type = FIS_K_STORAGECOMMITREQ;
    cond = TBL_Select(&h->storageCommitReqHandle, criteria, fields, count,
		      storageCommitCallback, getList);
    if (cond != TBL_NORMAL)
	return FIS_GETFAILED;

    if (r != NULL)
	*r = storageCommitRequest;

    return FIS_NORMAL;
}
示例#6
0
文件: fisget.c 项目: ccteng/dicomprop
static CONDITION
getVisitRecord(PRIVATE_HANDLE * h,
   FIS_DATA_TYPE criteriaType, char *uid, long listFlag, LST_HEAD * getList,
	       FIS_VISITRECORD * r, long *count)
{
    CONDITION cond;
    TBL_CRITERIA criteria[2];
    FIS_VISITRECORD *p;

    static TBL_FIELD fields[] = {
	{TBL_FIELD_STRING("VisUID", visit.VisUID)},
	{TBL_FIELD_STRING("PatUID", visit.PatUID)},
	{TBL_FIELD_STRING("RefPhyNam", visit.RefPhyNam)},
	{NULL},
    };

    criteria[0].FieldName = criteria[1].FieldName = NULL;
    if (uid != NULL) {
	if (uid[0] != '\0') {
	    if (criteriaType == FIS_K_PATIENT) {
		TBL_CRITERIA_LOAD_BYTE(criteria[0], "PatUID", uid, TBL_STRING, TBL_EQUAL);
	    } else {
		TBL_CRITERIA_LOAD_BYTE(criteria[0], "VisUID", uid, TBL_STRING, TBL_EQUAL);
	    }
	}
    }
    memset(&visit, 0, sizeof(visit));
    visit.Type = FIS_K_VISIT;
    cond = TBL_Select(&h->visitHandle, criteria, fields, count, visitCallback,
		      getList);
    if (cond != TBL_NORMAL)
	return 0;

    if (r != NULL)
	*r = visit;

    if (listFlag & FIS_K_VISIT_STUDYLIST) {
	if (getList != NULL) {
	    p = LST_Head(&getList);
	    (void) LST_Position(&getList, p);
	} else
	    p = r;
	while (p != NULL) {
	    p->StudyList = LST_Create();
	    cond = getStudyRecord(h, FIS_K_VISIT, p->VisUID, 0, p->StudyList, NULL, NULL);
	    if (cond != FIS_NORMAL)
		return cond;
	    if (getList != NULL)
		p = LST_Next(&getList);
	    else
		p = NULL;
	}
    }
    return FIS_NORMAL;
}
示例#7
0
文件: select.c 项目: nagyistge/ctn
static CONDITION
queryStorageControl(TBL_HANDLE ** handle,
		    DMAN_STORAGECONTROL * workRecord,
		    DMAN_STORAGECONTROL * criteriaRecord, LST_HEAD * head,
		    CONDITION(*callback) (), long *count, void *ctx)
{
    CONDITION
    cond;
    TBL_CRITERIA
	criteriaList[3];

    static TBL_FIELD
        fields[7];
    int
        i;
    CONTEXT
	context;

    i = 0;
    if (criteriaRecord->Flag & DMAN_K_STORAGECONTROL_REQUESTING) {
	TBL_CRITERIA_LOAD_BYTE(criteriaList[i], "RequestingTitle",
		    criteriaRecord->RequestingTitle, TBL_STRING, TBL_EQUAL);
	i++;
    }
    if (criteriaRecord->Flag & DMAN_K_STORAGECONTROL_RESPONDING) {
	TBL_CRITERIA_LOAD_BYTE(criteriaList[i], "RespondingTitle",
		    criteriaRecord->RespondingTitle, TBL_STRING, TBL_EQUAL);
	i++;
    }
    criteriaList[i].FieldName = NULL;

    i = 0;
    TBL_FIELD_DECLARE_STRING(fields[i], "RequestingTitle", workRecord->RequestingTitle,
			     sizeof(workRecord->RequestingTitle));
    i++;
    TBL_FIELD_DECLARE_STRING(fields[i], "RespondingTitle", workRecord->RespondingTitle,
			     sizeof(workRecord->RespondingTitle));
    i++;
    TBL_FIELD_DECLARE_STRING(fields[i], "Medium", workRecord->Medium,
			     sizeof(workRecord->Medium));
    i++;
    TBL_FIELD_DECLARE_STRING(fields[i], "Root", workRecord->Root,
			     sizeof(workRecord->Root));

    fields[++i].FieldName = NULL;

    context.lst = &head;
    context.record = (DMAN_GENERICRECORD *) workRecord;
    cond = TBL_Select(handle, criteriaList, fields, count,
		      callbackStorageControl, &context);
    if (cond == TBL_NORMAL)
	return DMAN_NORMAL;
    else
	return 0;
}
示例#8
0
文件: select.c 项目: nagyistge/ctn
static CONDITION
queryGroupNames(TBL_HANDLE ** handle,
		DMAN_GROUPNAMES * workRecord,
		DMAN_GROUPNAMES * criteriaRecord, LST_HEAD * head,
		CONDITION(*callback) (), long *count, void *ctx)
{
    CONDITION
    cond;
    TBL_CRITERIA
	criteriaList[3];

    static TBL_FIELD
        fields[4];
    int
        i;
    CONTEXT
	context;

    i = 0;
    if (criteriaRecord->Flag & DMAN_K_GROUP_TITLE) {
	criteriaList[i].FieldName = "Title";
	criteriaList[i].Operator = TBL_EQUAL;
	TBL_LOAD_STRING(&criteriaList[i].Value, criteriaRecord->Title);
	i++;
    }
    if (criteriaRecord->Flag & DMAN_K_GROUP_GROUP) {
	criteriaList[i].FieldName = "GroupName";
	criteriaList[i].Operator = TBL_EQUAL;
	TBL_LOAD_STRING(&criteriaList[i].Value, criteriaRecord->GroupName);
	i++;
    }
    criteriaList[i].FieldName = NULL;

    fields[0].FieldName = "Title";
    TBL_EXISTING_STRING(&fields[0].Value, workRecord->Title);
    fields[1].FieldName = "GroupName";
    TBL_EXISTING_STRING(&fields[1].Value, workRecord->GroupName);
    fields[2].FieldName = NULL;

    context.lst = &head;
    context.record = (DMAN_GENERICRECORD *) workRecord;

    cond = TBL_Select(handle, criteriaList,
		      fields, count, callbackGroup, &context);
    if (cond == TBL_NORMAL)
	return DMAN_NORMAL;
    else
	return 0;
}
示例#9
0
文件: insert.c 项目: nagyistge/ctn
static CONDITION
insertGroupNames(TBL_HANDLE ** handle,
		 DMAN_GROUPNAMES * workRecord, DMAN_CRITERIA criteria,
		 DMAN_GROUPNAMES * criteriaRecord, LST_HEAD * head,
		 CONDITION(*callback) (), long *count, void *ctx)
{
    CONDITION
    cond;
    TBL_CRITERIA
	criteriaList[3];

    static TBL_FIELD
        fields[4];

    switch (criteria) {
    case DMAN_K_ALLRECORDS:
	criteriaList[0].FieldName = NULL;
	break;
    case DMAN_K_BYTITLE:
	criteriaList[0].FieldName = "Title";
	criteriaList[0].Operator = TBL_EQUAL;
	TBL_LOAD_STRING(&criteriaList[0].Value, criteriaRecord->Title);
	criteriaList[1].FieldName = NULL;
	break;
    case DMAN_K_BYTITLE_GROUPNAME:
	criteriaList[0].FieldName = "Title";
	criteriaList[0].Operator = TBL_EQUAL;
	TBL_LOAD_STRING(&criteriaList[0].Value, criteriaRecord->Title);
	criteriaList[1].FieldName = "GroupName";
	criteriaList[1].Operator = TBL_EQUAL;
	TBL_LOAD_STRING(&criteriaList[1].Value, criteriaRecord->GroupName);
	criteriaList[2].FieldName = NULL;
	break;
    default:
	break;
    }
    fields[0].FieldName = "Title";
    TBL_EXISTING_STRING(&fields[0].Value, workRecord->Title);
    fields[1].FieldName = "GroupName";
    TBL_EXISTING_STRING(&fields[1].Value, workRecord->GroupName);
    fields[2].FieldName = NULL;

    cond = TBL_Select(handle, criteriaList, fields, count, callback, ctx);
    if (cond == TBL_NORMAL)
	return DMAN_NORMAL;
    else
	return 0;
}
示例#10
0
文件: fisget.c 项目: ccteng/dicomprop
static CONDITION
getSCImageRecord(PRIVATE_HANDLE * h,
   FIS_DATA_TYPE criteriaType, char *uid, long listFlag, LST_HEAD * getList,
		 FIS_SCIMAGERECORD * r, long *count)
{
    CONDITION cond;
    TBL_CRITERIA criteria[2];
    FIS_SCIMAGERECORD *p;

    static TBL_FIELD fields[] = {
	{TBL_FIELD_STRING("SOPInsUID", scImage.SOPInsUID)},
	{TBL_FIELD_STRING("SerInsUID", scImage.SerInsUID)},
	{TBL_FIELD_STRING("StuComUID", scImage.StuComUID)},
	{TBL_FIELD_STRING("SOPClaUID", scImage.SOPClaUID)},
	{TBL_FIELD_STRING("RetAETit", scImage.RetAETit)},
	{TBL_FIELD_STRING("StoMedFilSetID", scImage.StoMedFilSetID)},
	{TBL_FIELD_STRING("StoMedFilSetUID", scImage.StoMedFilSetUID)},
	{NULL},
    };

    criteria[0].FieldName = criteria[1].FieldName = NULL;
    if (uid != NULL) {
	if (uid[0] != '\0') {
	    if (criteriaType == FIS_K_SCSERIES) {
		TBL_CRITERIA_LOAD_BYTE(criteria[0], "SerInsUID", uid, TBL_STRING, TBL_EQUAL);
	    } else if (criteriaType == FIS_K_STUDYCOMPONENT) {
		TBL_CRITERIA_LOAD_BYTE(criteria[0], "StuComUID", uid, TBL_STRING, TBL_EQUAL);
	    } else {
		TBL_CRITERIA_LOAD_BYTE(criteria[0], "SOPInsUID", uid, TBL_STRING, TBL_EQUAL);
	    }
	}
    }
    (void) memset(&scImage, 0, sizeof(scImage));
    scImage.Type = FIS_K_SCIMAGE;
    cond = TBL_Select(&h->studyComponentImageHandle, criteria, fields, count,
		      scImageCallback, getList);
    if (cond != TBL_NORMAL)
	return COND_PushCondition(FIS_COND(FIS_STUDYGETFAILED),
				  "(FIS)getSCImageRecord");

    if (r != NULL)
	*r = scImage;

    return FIS_NORMAL;
}
示例#11
0
文件: fisget.c 项目: ccteng/dicomprop
static CONDITION
getWorkQueueRecord(PRIVATE_HANDLE * h,
		   char *taskName, char *taskID,
		   long listFlag, LST_HEAD * getList,
		   FIS_WORKQUEUERECORD * r, long *count)
{
    CONDITION
    cond;
    TBL_CRITERIA
	criteria[3];
    int i = 0;

    static TBL_FIELD fields[] = {
	{"TasNam", TBL_STRING, sizeof(workQueue.TasNam),
	sizeof(workQueue.TasNam), 0, (void *) &workQueue.TasNam[0]},
	{"TasID", TBL_STRING, sizeof(workQueue.TasID),
	sizeof(workQueue.TasID), 0, (void *) &workQueue.TasID[0]},
	{NULL}
    };

    if (taskName != NULL && taskName[0] != '\0') {
	TBL_CRITERIA_LOAD_BYTE(criteria[i], "TasNam", taskName, TBL_STRING, TBL_EQUAL);
	i++;
    }
    if (taskID != NULL && taskID[0] != '\0') {
	TBL_CRITERIA_LOAD_BYTE(criteria[i], "TasID", taskID, TBL_STRING, TBL_EQUAL);
	i++;
    }
    criteria[i].FieldName = NULL;

    (void) memset(&workQueue, 0, sizeof(workQueue));
    workQueue.Type = FIS_K_WORKQUEUE;
    cond = TBL_Select(&h->workQueueHandle, criteria, fields, count,
		      workQueueCallback, getList);
    if (cond != TBL_NORMAL)
	return FIS_GETFAILED;

    if (r != NULL)
	*r = workQueue;

    return FIS_NORMAL;
}
示例#12
0
文件: fisget.c 项目: ccteng/dicomprop
static CONDITION
getCommitSOPRecord(PRIVATE_HANDLE * h,
   FIS_DATA_TYPE criteriaType, char *uid, long listFlag, LST_HEAD * getList,
		   FIS_COMMITSOPREFRECORD * r, long *count)
{
    CONDITION
    cond;
    TBL_CRITERIA
	criteria[2];

    static TBL_FIELD fields[] = {
	{"TraUID", TBL_STRING, sizeof(commitSOPRef.TraUID),
	sizeof(commitSOPRef.TraUID), 0, (void *) &commitSOPRef.TraUID[0]},
	{"SOPClaUID", TBL_STRING, sizeof(commitSOPRef.SOPClaUID),
	sizeof(commitSOPRef.SOPClaUID), 0, (void *) &commitSOPRef.SOPClaUID[0]},
	{"SOPInsUID", TBL_STRING, sizeof(commitSOPRef.SOPInsUID),
	sizeof(commitSOPRef.SOPInsUID), 0, (void *) &commitSOPRef.SOPInsUID[0]},

	{NULL}
    };

    criteria[0].FieldName = criteria[1].FieldName = NULL;
    if (uid != NULL) {
	if (uid[0] != '\0') {
	    if (criteriaType == FIS_K_STORAGECOMMITREQ) {
		TBL_CRITERIA_LOAD_BYTE(criteria[0], "TraUID", uid, TBL_STRING, TBL_EQUAL);
	    }
	}
    }
    (void) memset(&commitSOPRef, 0, sizeof(commitSOPRef));
    commitSOPRef.Type = FIS_K_COMMITSOPREF;
    cond = TBL_Select(&h->commitSOPRefHandle, criteria, fields, count,
		      commitSOPRefCallback, getList);
    if (cond != TBL_NORMAL)
	return FIS_GETFAILED;

    if (r != NULL)
	*r = commitSOPRef;

    return FIS_NORMAL;
}
示例#13
0
文件: fisget.c 项目: ccteng/dicomprop
static CONDITION
getResultsRecord(PRIVATE_HANDLE * h,
   FIS_DATA_TYPE criteriaType, char *uid, long listFlag, LST_HEAD * getList,
		 FIS_RESULTSRECORD * r, long *count)
{
    CONDITION cond;
    TBL_CRITERIA criteria[2];
    FIS_RESULTSRECORD *p;

    static TBL_FIELD fields[] = {
	{"ResUID", TBL_STRING, sizeof(results.ResUID), sizeof(results.ResUID),
	0, (void *) &results.ResUID[0]},
	{"StuInsUID", TBL_STRING, sizeof(results.StuInsUID),
	sizeof(results.StuInsUID), 0, (void *) &results.StuInsUID[0]},
	{"ResID", TBL_STRING, sizeof(results.ResID), sizeof(results.ResID),
	0, (void *) &results.ResID[0]},
	{"Imp", TBL_TEXT, sizeof(results.Imp), sizeof(results.Imp),
	0, (void *) &results.Imp[0]},
	{"InsCreDat", TBL_STRING, sizeof(results.InsCreDat),
	sizeof(results.InsCreDat), 0, (void *) &results.InsCreDat[0]},
	{"InsCreTim", TBL_STRING, sizeof(results.InsCreTim),
	sizeof(results.InsCreTim), 0, (void *) &results.InsCreTim[0]},
	{"InsCreUID", TBL_STRING, sizeof(results.InsCreUID),
	sizeof(results.InsCreUID), 0, (void *) &results.InsCreUID},
	{NULL}
    };

    criteria[0].FieldName = criteria[1].FieldName = NULL;
    if (uid != NULL) {
	if (uid[0] != '\0') {
	    if (criteriaType == FIS_K_STUDY) {
		TBL_CRITERIA_LOAD_BYTE(criteria[0], "StuInsUID", uid, TBL_STRING, TBL_EQUAL);
	    } else {
		TBL_CRITERIA_LOAD_BYTE(criteria[0], "ResUID", uid, TBL_STRING, TBL_EQUAL);
	    }
	}
    }
    (void) memset(&results, 0, sizeof(results));
    results.Type = FIS_K_RESULTS;
    cond = TBL_Select(&h->resultsHandle, criteria, fields, count,
		      resultsCallback, getList);
    if (cond != TBL_NORMAL)
	return FIS_GETFAILED;

    if (r != NULL)
	*r = results;

    if (listFlag & FIS_K_RESULTS_INTERPRETATIONLIST) {
	if (getList != NULL) {
	    p = LST_Head(&getList);
	    (void) LST_Position(&getList, p);
	} else
	    p = r;
	while (p != NULL) {
	    p->InterpretationList = LST_Create();
	    p->Flag |= FIS_K_RESULTS_INTERPRETATIONLIST;
	    cond = getInterpretationRecord(h, FIS_K_RESULTS, p->ResUID,
				      0, p->InterpretationList, NULL, NULL);
	    if (cond != FIS_NORMAL)
		return cond;

	    if (getList != NULL)
		p = LST_Next(&getList);
	    else
		p = NULL;
	}
    }
    return FIS_NORMAL;
}
示例#14
0
文件: fisget.c 项目: ccteng/dicomprop
static CONDITION
getSCSeriesRecord(PRIVATE_HANDLE * h,
   FIS_DATA_TYPE criteriaType, char *uid, long listFlag, LST_HEAD * getList,
		  FIS_SCSERIESRECORD * r, long *count)
{
    CONDITION cond;
    TBL_CRITERIA criteria[2];
    FIS_SCSERIESRECORD *p;

    static TBL_FIELD fields[] = {
	{TBL_FIELD_STRING("SerInsUID", scSeries.SerInsUID)},
	{TBL_FIELD_STRING("StuComUID", scSeries.StuComUID)},
	{TBL_FIELD_STRING("SerDat", scSeries.SerDat)},
	{TBL_FIELD_STRING("SerTim", scSeries.SerTim)},
	{TBL_FIELD_STRING("RetAETit", scSeries.RetAETit)},
	{TBL_FIELD_STRING("StoMedFilSetID", scSeries.StoMedFilSetID)},
	{TBL_FIELD_STRING("StoMedFilSetUID", scSeries.StoMedFilSetUID)},
	{NULL},
    };

    criteria[0].FieldName = criteria[1].FieldName = NULL;
    if (uid != NULL) {
	if (uid[0] != '\0') {
	    if (criteriaType == FIS_K_STUDYCOMPONENT) {
		TBL_CRITERIA_LOAD_BYTE(criteria[0], "StuComUID", uid, TBL_STRING, TBL_EQUAL);
	    } else {
		TBL_CRITERIA_LOAD_BYTE(criteria[0], "SerInsUID", uid, TBL_STRING, TBL_EQUAL);
	    }
	}
    }
    (void) memset(&scSeries, 0, sizeof(scSeries));
    scSeries.Type = FIS_K_SCSERIES;
    cond = TBL_Select(&h->studyComponentSeriesHandle, criteria, fields, count,
		      scSeriesCallback, getList);
    if (cond != TBL_NORMAL)
	return COND_PushCondition(FIS_COND(FIS_STUDYGETFAILED),
				  "(FIS)getSCSeriesRecord");

    if (r != NULL)
	*r = scSeries;


    if (listFlag & FIS_K_SCSERIES_IMAGELIST) {
	if (getList != NULL) {
	    p = LST_Head(&getList);
	    (void) LST_Position(&getList, p);
	} else
	    p = r;
	while (p != NULL) {
	    p->ImageList = LST_Create();
	    cond = getSCImageRecord(h, FIS_K_SCSERIES, p->SerInsUID, 0,
				    p->ImageList, NULL, NULL);
	    if (cond != FIS_NORMAL)
		return cond;
	    if (getList != NULL)
		p = LST_Next(&getList);
	    else
		p = NULL;
	}
    }
    return FIS_NORMAL;
}
示例#15
0
文件: fisget.c 项目: ccteng/dicomprop
static CONDITION
getStudyComponentRecord(PRIVATE_HANDLE * h,
   FIS_DATA_TYPE criteriaType, char *uid, long listFlag, LST_HEAD * getList,
			FIS_STUDYCOMPONENTRECORD * r, long *count)
{
    CONDITION cond;
    TBL_CRITERIA criteria[2];
    FIS_STUDYCOMPONENTRECORD *p;

    static TBL_FIELD fields[] = {
	{TBL_FIELD_STRING("StuComUID", studyComponent.StuComUID)},
	{TBL_FIELD_STRING("StuInsUID", studyComponent.StuInsUID)},
	{TBL_FIELD_STRING("Mod", studyComponent.Mod)},
	{TBL_FIELD_STRING("StuDes", studyComponent.StuDes)},
	{TBL_FIELD_STRING("ProCodVal", studyComponent.ProCodVal)},
	{TBL_FIELD_STRING("ProCodSchDes", studyComponent.ProCodSchDes)},
	{TBL_FIELD_STRING("ProCodMea", studyComponent.ProCodMea)},
	{TBL_FIELD_STRING("StuComStaID", studyComponent.StuComStaID)},
	{TBL_FIELD_STRING("StuID", studyComponent.StuID)},
	{NULL},
    };

    criteria[0].FieldName = criteria[1].FieldName = NULL;
    if (uid != NULL) {
	if (uid[0] != '\0') {
	    if (criteriaType == FIS_K_STUDY) {
		TBL_CRITERIA_LOAD_BYTE(criteria[0], "StuInsUID", uid, TBL_STRING, TBL_EQUAL);
	    } else {
		TBL_CRITERIA_LOAD_BYTE(criteria[0], "StuComUID", uid, TBL_STRING, TBL_EQUAL);
	    }
	}
    }
    (void) memset(&studyComponent, 0, sizeof(studyComponent));
    studyComponent.Type = FIS_K_STUDYCOMPONENT;
    cond = TBL_Select(&h->studyComponentHandle, criteria, fields, count,
		      studyComponentCallback, getList);
    if (cond != TBL_NORMAL)
	return COND_PushCondition(FIS_COND(FIS_STUDYGETFAILED),
				  "(FIS)getStudyRecord");

    if (r != NULL)
	*r = studyComponent;

    if (listFlag & FIS_K_STUDYCOMP_SERIESLIST) {
	if (getList != NULL) {
	    p = LST_Head(&getList);
	    (void) LST_Position(&getList, p);
	} else
	    p = r;
	while (p != NULL) {
	    p->SeriesList = LST_Create();
	    p->Flag |= FIS_K_STUDYCOMP_SERIESLIST;
	    cond = getSCSeriesRecord(h, FIS_K_STUDYCOMPONENT, p->StuComUID,
				     FIS_K_SCSERIES_IMAGELIST, p->SeriesList,
				     NULL, NULL);
	    if (cond != FIS_NORMAL)
		return cond;
	    if (getList != NULL)
		p = LST_Next(&getList);
	    else
		p = NULL;
	}
    }
    return FIS_NORMAL;
}
示例#16
0
文件: fisget.c 项目: ccteng/dicomprop
static CONDITION
selectStudyRecord(PRIVATE_HANDLE * h,
		  FIS_CRITERIA_TYPE criteriaType, const char *criteriaString,
		  long listFlag, LST_HEAD * getList,
		  FIS_STUDYRECORD * r, long *count)
{
    CONDITION cond = FIS_NORMAL;
    TBL_CRITERIA criteria[2];
    char localString[1024];
    FIS_STUDYRECORD *p;

    static TBL_FIELD fields[] = {
	{TBL_FIELD_STRING("PatUID", study.PatUID)},
	{TBL_FIELD_STRING("StuInsUID", study.StuInsUID)},
	{TBL_FIELD_STRING("VisUID", study.VisUID)},
	{TBL_FIELD_STRING("AccNum", study.AccNum)},
	{TBL_FIELD_STRING("StuID", study.StuID)},
	{"SchStuStaDat", TBL_SIGNED4, sizeof(studyDate), sizeof(studyDate),
	0, (void *) &studyDate},
	{"SchStuStaTim", TBL_FLOAT4, sizeof(studyTime), sizeof(studyTime),
	0, (void *) &studyTime},
	{TBL_FIELD_STRING("SchStuLoc", study.SchStuLoc)},
	{TBL_FIELD_STRING("ProDes", study.ProDes)},
	{TBL_FIELD_STRING("StuStaID", study.StuStaID)},
	{NULL},
    };

    criteria[0].FieldName = criteria[1].FieldName = NULL;
    strcpy(localString, criteriaString);
    switch (criteriaType) {
    case FIS_K_ACCESSION:
	TBL_CRITERIA_LOAD_BYTE(criteria[0], "AccNum", localString, TBL_STRING, TBL_EQUAL);
	break;
    default:
	cond = 0;		/* Repair */
    }

    if (cond != FIS_NORMAL)
	return cond;

    (void) memset(&study, 0, sizeof(study));
    study.Type = FIS_K_STUDY;
    cond = TBL_Select(&h->studyHandle, criteria, fields, count, studyCallback,
		      getList);
    if (cond != TBL_NORMAL)
	return COND_PushCondition(FIS_COND(FIS_STUDYGETFAILED),
				  "(FIS)getStudyRecord");

    if (r != NULL)
	*r = study;

    if (listFlag & FIS_K_STU_STUDYCOMPONENTLIST) {
	if (getList != NULL) {
	    p = LST_Head(&getList);
	    (void) LST_Position(&getList, p);
	} else
	    p = r;
	while (p != NULL) {
	    p->StudyComponentList = LST_Create();
	    p->Flag |= FIS_K_STU_STUDYCOMPONENTLIST;
	    cond = getStudyComponentRecord(h, FIS_K_STUDY, p->StuInsUID,
				      0, p->StudyComponentList, NULL, NULL);
	    if (cond != FIS_NORMAL)
		return cond;
	    if (getList != NULL)
		p = LST_Next(&getList);
	    else
		p = NULL;
	}
    }
    if (listFlag & FIS_K_STU_RESULTSLIST) {
	if (getList != NULL) {
	    p = LST_Head(&getList);
	    (void) LST_Position(&getList, p);
	} else
	    p = r;
	while (p != NULL) {
	    p->ResultsList = LST_Create();
	    p->Flag |= FIS_K_STU_RESULTSLIST;
	    cond = getResultsRecord(h, FIS_K_STUDY, p->StuInsUID, 0,
				    p->ResultsList, NULL, NULL);
	    if (cond != FIS_NORMAL)
		return cond;
	    if (getList != NULL)
		p = LST_Next(&getList);
	    else
		p = NULL;
	}
    }
    return FIS_NORMAL;
}
示例#17
0
文件: fisget.c 项目: ccteng/dicomprop
static CONDITION
getPatientRecord(PRIVATE_HANDLE * h,
   FIS_DATA_TYPE criteriaType, char *uid, long listFlag, LST_HEAD * getList,
		 FIS_PATIENTRECORD * r, long *count)
{
    CONDITION
    cond;
    TBL_CRITERIA
	criteria[2];
    FIS_PATIENTRECORD
	* p;

    static TBL_FIELD fields[] = {
	{"PatID", TBL_STRING, sizeof(patient.PatID), sizeof(patient.PatID),
	0, (void *) &patient.PatID[0]},
	{"PatUID", TBL_STRING, sizeof(patient.PatUID), sizeof(patient.PatUID),
	0, (void *) &patient.PatUID[0]},
	{"PatNam", TBL_STRING, sizeof(patient.PatNam), sizeof(patient.PatNam),
	0, (void *) &patient.PatNam[0]},
	{"PatSex", TBL_STRING, sizeof(patient.PatSex), sizeof(patient.PatSex),
	0, (void *) &patient.PatSex[0]},
	{"PatBirDat", TBL_SIGNED4, sizeof(patientBD), sizeof(patientBD),
	0, (void *) &patientBD},
	{NULL},
    };

    criteria[0].FieldName = criteria[1].FieldName = NULL;
    if (uid != NULL) {
	if (uid[0] != '\0') {
	    TBL_CRITERIA_LOAD_BYTE(criteria[0], "PatUID", uid, TBL_STRING, TBL_EQUAL);
	}
    }
    memset(&patient, 0, sizeof(patient));
    patient.Type = FIS_K_PATIENT;
    cond = TBL_Select(&h->patientHandle, criteria, fields, count, patientCallback,
		      getList);
    if (cond != TBL_NORMAL)
	return COND_PushCondition(FIS_COND(FIS_PATIENTGETFAILED),
				  "(FIS)getPatientRecord");

    if (r != NULL)
	*r = patient;

    if (listFlag & FIS_K_PAT_STUDYLIST) {
	if (getList != NULL) {
	    p = LST_Head(&getList);
	    (void) LST_Position(&getList, p);
	} else
	    p = r;
	while (p != NULL) {
	    p->StudyList = LST_Create();
	    p->Flag |= FIS_K_PAT_STUDYLIST;
	    cond = getStudyRecord(h, FIS_K_PATIENT, p->PatUID, 0, p->StudyList, NULL, NULL);
	    if (cond != FIS_NORMAL)
		return cond;
	    if (getList != NULL)
		p = LST_Next(&getList);
	    else
		p = NULL;
	}
    }
/*
    if (listFlag & FIS_K_PAT_VISITLIST) {
	if (getList != NULL) {
	    p = LST_Head(&getList);
	    (void) LST_Position(&getList, p);
	} else
	    p = r;
	while (p != NULL) {
	    p->VisitList = LST_Create();
	    p->Flag |= FIS_K_PAT_VISITLIST;
	    cond = getVisitRecord(h, FIS_K_PATIENT, p->PatUID, 0, p->VisitList, NULL, NULL);
	    if (cond != FIS_NORMAL)
		return cond;
	    if (getList != NULL)
		p = LST_Next(&getList);
	    else
		p = NULL;
	}
    }
*/
    return FIS_NORMAL;
}
示例#18
0
文件: fisget.c 项目: ccteng/dicomprop
static CONDITION
getInterpretationRecord(PRIVATE_HANDLE * h,
   FIS_DATA_TYPE criteriaType, char *uid, long listFlag, LST_HEAD * getList,
			FIS_INTERPRETATIONRECORD * r, long *count)
{
    CONDITION
    cond;
    TBL_CRITERIA
	criteria[2];

    static TBL_FIELD fields[] = {
	{"IntUID", TBL_STRING, sizeof(interpretation.IntUID),
	sizeof(interpretation.IntUID), 0, (void *) &interpretation.IntUID[0]},
	{"ResUID", TBL_STRING, sizeof(interpretation.ResUID),
	sizeof(interpretation.ResUID), 0, (void *) &interpretation.ResUID[0]},
	{"IntID", TBL_STRING, sizeof(interpretation.IntID),
	sizeof(interpretation.IntID), 0, (void *) &interpretation.IntID[0]},
	{"IntTex", TBL_TEXT, sizeof(interpretation.IntTex),
	sizeof(interpretation.IntTex), 0, (void *) &interpretation.IntTex[0]},
	{"IntDiaDes", TBL_TEXT, sizeof(interpretation.IntDiaDes),
	    sizeof(interpretation.IntDiaDes), 0,
	(void *) &interpretation.IntDiaDes[0]},
	{"IntTypID", TBL_STRING, sizeof(interpretation.IntTypID),
	sizeof(interpretation.IntTypID), 0, (void *) &interpretation.IntTypID[0]},
	{"IntStaID", TBL_STRING, sizeof(interpretation.IntStaID),
	sizeof(interpretation.IntStaID), 0, (void *) &interpretation.IntStaID[0]},

	{"InsCreDat", TBL_STRING, sizeof(interpretation.InsCreDat),
	sizeof(interpretation.InsCreDat), 0, (void *) &interpretation.InsCreDat[0]},
	{"InsCreTim", TBL_STRING, sizeof(interpretation.InsCreTim),
	sizeof(interpretation.InsCreTim), 0, (void *) &interpretation.InsCreTim[0]},
	{"InsCreUID", TBL_STRING, sizeof(interpretation.InsCreUID),
	sizeof(interpretation.InsCreUID), 0, (void *) &interpretation.InsCreUID},

	{"PhyAppInt", TBL_STRING, sizeof(interpretation.PhyAppInt),
	sizeof(interpretation.PhyAppInt), 0, (void *) &interpretation.PhyAppInt},
	{"IntAppDat", TBL_STRING, sizeof(interpretation.IntAppDat),
	sizeof(interpretation.IntAppDat), 0, (void *) &interpretation.IntAppDat},
	{"IntAppTim", TBL_STRING, sizeof(interpretation.IntAppTim),
	sizeof(interpretation.IntAppTim), 0, (void *) &interpretation.IntAppTim},
	{NULL},
    };

    criteria[0].FieldName = criteria[1].FieldName = NULL;
    if (uid != NULL) {
	if (uid[0] != '\0') {
	    if (criteriaType == FIS_K_RESULTS) {
		TBL_CRITERIA_LOAD_BYTE(criteria[0], "ResUID", uid, TBL_STRING, TBL_EQUAL);
	    } else {
		TBL_CRITERIA_LOAD_BYTE(criteria[0], "IntUID", uid, TBL_STRING, TBL_EQUAL);
	    }
	}
    }
    (void) memset(&interpretation, 0, sizeof(interpretation));
    interpretation.Type = FIS_K_INTERPRETATION;
    cond = TBL_Select(&h->interpretationHandle, criteria, fields, count,
		      interpretationCallback, getList);
    if (cond != TBL_NORMAL)
	return FIS_GETFAILED;

    if (r != NULL)
	*r = interpretation;
    return FIS_NORMAL;
}
示例#19
0
文件: ttselect.c 项目: nagyistge/ctn
main()
{
    CONDITION
	cond;
    TBL_HANDLE
	* handle;
/*
    TBL_CRITERIA
	criteria[10];
*/
    long
        count;
    void
       *foo = NULL;

    static TBL_FIELD
        fields[] = {
	{"FNAME", TBL_STRING, 50, 0, 1, (void *) fname},
	{"LNAME", TBL_STRING, 50, 0, 1, (void *) lname},
	{"AGE", TBL_SIGNED4, 4, 0, 1, &age},
	{"ZIP", TBL_SIGNED4, 4, 0, 1, &zip},
	{"WEIGHT", TBL_FLOAT4, 4, 0, 1, &weight},
	{NULL}
    };

    static TBL_FIELD
        fields1[] = {
	{"T_TEXT", TBL_TEXT, 50, 0, 1, (void *) textTest},
	{NULL}
    };

    THR_Init();
    cond = TBL_Open("TBLTest", "TBL_Persons", &handle);
    if (cond != TBL_NORMAL) {
	COND_DumpConditions();
	exit(1);
    }
/*
    criteria[0].FieldName = "LNAME";
    criteria[0].Operator = TBL_EQUAL;
    TBL_LOAD_STRING(&criteria[0].Value, "JONES");

    criteria[1].FieldName = 0;
*/

    cond = TBL_Select(&handle, NULL, fields, &count, callback, (void *) foo);
    if (cond != TBL_NORMAL) {
	COND_DumpConditions();
	THR_Shutdown();
	exit(2);
    }
    printf("ALL DONE--Count: %d\n", count);

    (void) TBL_Close(&handle);

#ifdef _MSC_VER
    cond = TBL_Open("TBLTest", "TBL_DataTypes", &handle);
    if (cond != TBL_NORMAL) {
	COND_DumpConditions();
	THR_Shutdown();
	exit(1);
    }
    count = 0;
    cond = TBL_Select(&handle, NULL, fields1, &count, callback, (void *) foo);
    if (cond != TBL_NORMAL) {
	COND_DumpConditions();
	THR_Shutdown();
	exit(3);
    }
    printf("ALL DONE--Count: %d\n", count);


#endif

    THR_Shutdown();
    exit(0);
}