| 1 | MCDBSAVE ;WISC/DCB-save and load util.  ;7/18/96  14:08
 | 
|---|
| 2 |  ;;2.3;Medicine;;09/13/1996
 | 
|---|
| 3 |  Q
 | 
|---|
| 4 |  ;{See MCDBELM for Field values}
 | 
|---|
| 5 | SAVE(FILE,REC,FIELDS,EXC,DATA,TYPE,USER,ERROR) ;SAVE some fields
 | 
|---|
| 6 |  N TEMP,RECS,FLDS,FILES
 | 
|---|
| 7 |  S ERROR=""
 | 
|---|
| 8 |  D RTNELM^MCDBELM(FILE,REC,FIELDS,.EXC,DATA,TYPE,USER,.TEMP,.ERROR)
 | 
|---|
| 9 |  D:ERROR="" SETREC(.TEMP,.ERROR)
 | 
|---|
| 10 |  S:ERROR="" ERROR=$$CHECK(.TEMP)
 | 
|---|
| 11 |  Q
 | 
|---|
| 12 | SETREC(TEMP,ERROR) ;Save the record
 | 
|---|
| 13 |  N DIE,DR,DA,DIC,DTOUT,Y,DIROUT,DUOUT,DTOUT,DIRUT,DIROUT
 | 
|---|
| 14 |  S ERROR=""
 | 
|---|
| 15 |  I '$D(TEMP) S ERROR=" 0.0 - Require array not define" Q
 | 
|---|
| 16 |  S DR=$$RTNDR^MCDBELM(.TEMP,1) I DR="" S ERROR=" Nothing to save" Q
 | 
|---|
| 17 |  S DIE=TEMP("DIC") I $E(DIE,1)=" " S ERROR=DIE Q
 | 
|---|
| 18 |  D RTNDA^MCDBELM(.TEMP,.DA,.ERROR) Q:ERROR'=""
 | 
|---|
| 19 |  D ^DIE
 | 
|---|
| 20 |  I '$D(DA) S ERROR=" inf - Record was deleted" Q
 | 
|---|
| 21 |  I $D(DTOUT) S ERROR=" inf - User timeout" Q
 | 
|---|
| 22 |  I $D(Y)'=0&(TEMP("USER")=2) S ERROR=" inf - User Up-arrow out" Q
 | 
|---|
| 23 |  Q
 | 
|---|
| 24 | CHECK(TEMP) ;Checks the field values
 | 
|---|
| 25 |  N ERROR,XTOTAL,DIC,DR,DA,DIQ,XPLACE,XHOLD
 | 
|---|
| 26 |  N XFILE,XFLD,XSTR,XINT,XEXT S ERROR=""
 | 
|---|
| 27 |  Q:TEMP("USER")'=0 ""
 | 
|---|
| 28 |  S DR="",XTOTAL=$$TOTAL^MCDBELM(.TEMP),DIC=TEMP("DIC") Q:$E(DIC,1)=" " DIE
 | 
|---|
| 29 |  S DR=$$RTNDR^MCDBELM(.TEMP) Q:ERROR'=""
 | 
|---|
| 30 |  D RTNDA^MCDBELM(.TEMP,.DA,.ERROR) Q:ERROR'=""
 | 
|---|
| 31 |  S DIQ(0)="IE",DIQ="HOLD("
 | 
|---|
| 32 |  D EN^DIQ1
 | 
|---|
| 33 |  S XFILE=$P(TEMP(XTOTAL),U,1),XPLACE=DIQ_XFILE_","_DA_",",XHOLD=""
 | 
|---|
| 34 |  F  S XHOLD=+$O(TEMP("FLD",XHOLD)) Q:XHOLD=0!(ERROR'="")  D
 | 
|---|
| 35 |  .S XFLD=XHOLD,XSTR=TEMP("FLD",XHOLD)
 | 
|---|
| 36 |  .S XSTR=$S(XSTR="@":"",1:XSTR)
 | 
|---|
| 37 |  .S XINT=$G(@(XPLACE_XHOLD_",""I"")")),XEXT=$G(@(XPLACE_XHOLD_",""E"")"))
 | 
|---|
| 38 |  .I (XINT'=XSTR),(XEXT'=XSTR) S ERROR=" 6.1 - Data error for field "_XHOLD,ERROR(1)="USE: "_XSTR,ERROR(2)="EXT: "_XEXT,ERROR(3)="INT: "_XINT
 | 
|---|
| 39 |  Q ERROR
 | 
|---|
| 40 | LOAD(FILE,REC,FIELDS,EXC,TYPE,TEMP,ERROR) ;LOAD some fields
 | 
|---|
| 41 |  D RTNELM^MCDBELM(FILE,REC,FIELDS,.EXC,"",TYPE,1,.TEMP,.ERROR)
 | 
|---|
| 42 |  D:ERROR="" GETDATA(.TEMP,.ERROR)
 | 
|---|
| 43 |  Q
 | 
|---|
| 44 | GETDATA(TEMP,ERROR) ;RETRIEVE THE DATA THAT WAS SAVED
 | 
|---|
| 45 |  N X,XTOTAL,DIC,DR,DA,DIQ,XPLACE,XHOLD
 | 
|---|
| 46 |  N XFILE,XFLD,XSTR,XINT,XEXT,XTYP S ERROR=""
 | 
|---|
| 47 |  I '$D(TEMP) S ERROR=" 0.0 - Require array not define" Q
 | 
|---|
| 48 |  S DR="",XTOTAL=$$TOTAL^MCDBELM(.TEMP),DIC=TEMP("DIC")
 | 
|---|
| 49 |  I $E(DIC,1)=" " S ERROR=DIE Q
 | 
|---|
| 50 |  S DR=$$RTNDR^MCDBELM(.TEMP) Q:ERROR'=""
 | 
|---|
| 51 |  D RTNDA^MCDBELM(.TEMP,.DA,.ERROR) Q:ERROR'=""
 | 
|---|
| 52 |  S DIQ(0)="IE",DIQ="XHOLD("
 | 
|---|
| 53 |  D EN^DIQ1
 | 
|---|
| 54 |  S XFILE=$P(TEMP(XTOTAL),U,1),XPLACE=DIQ_XFILE_","_DA_",",XHOLD=""
 | 
|---|
| 55 |  F  S XHOLD=+$O(TEMP("TYP",XHOLD)) Q:XHOLD=0!(ERROR'="")  D
 | 
|---|
| 56 |  .S XTYP=TEMP("TYP",XHOLD) S XTYP=$TR(XTYP,"ei","EI")
 | 
|---|
| 57 |  .S XINT=$G(@(XPLACE_XHOLD_",""I"")")),XEXT=$G(@(XPLACE_XHOLD_",""E"")"))
 | 
|---|
| 58 |  .I $G(TEMP("EXC",XHOLD))'="" S X=XINT X TEMP("EXC",XHOLD) S:$G(X)'=XINT (XEXT,XINT)=X
 | 
|---|
| 59 |  .S TEMP("FLD",XHOLD)=$S(XTYP="I":XINT,XTYP="E":XEXT,XINT=XEXT:XINT,1:XINT_U_XEXT)
 | 
|---|
| 60 |  Q
 | 
|---|