| [613] | 1 | MDHL7U ; HOIFO/WAA -Routine utilities for CP ;7/23/01  11:41
 | 
|---|
 | 2 |  ;;1.0;CLINICAL PROCEDURES;;Apr 01, 2004
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 | UPDATE(MDIEN) ; Update File
 | 
|---|
 | 5 |  N DZ
 | 
|---|
 | 6 |  S DZ=0
 | 
|---|
 | 7 | UPD1 L +^MDD(703.1,MDIEN,.1,0):1 G:'$T UPD1
 | 
|---|
 | 8 |  S DZ=$P(^MDD(703.1,MDIEN,.1,0),"^",3)+1
 | 
|---|
 | 9 |  S $P(^MDD(703.1,MDIEN,.1,0),"^",3,4)=DZ_"^"_DZ
 | 
|---|
 | 10 |  L -^MDD(703.1,MDIEN,.1,0)
 | 
|---|
 | 11 |  Q DZ
 | 
|---|
 | 12 |  ;
 | 
|---|
 | 13 | ATT(DEV,ARRAY) ; Get the attributes of a device and pass them back in an
 | 
|---|
 | 14 |  ; array.
 | 
|---|
 | 15 |  N X
 | 
|---|
 | 16 |  S ARRAY=0
 | 
|---|
 | 17 |  I $G(^MDS(702.09,DEV,0))="" D
 | 
|---|
 | 18 |  . S X=0
 | 
|---|
 | 19 |  . S X=$O(^MDS(702.09,"B",DEV,X))
 | 
|---|
 | 20 |  . Q
 | 
|---|
 | 21 |  E  S X=DEV
 | 
|---|
 | 22 |  I X>0 D
 | 
|---|
 | 23 |  . N LINE,I,Z
 | 
|---|
 | 24 |  . S LINE=$G(^MDS(702.09,X,.3)) Q:LINE=""
 | 
|---|
 | 25 |  . S Z=""
 | 
|---|
 | 26 |  . F I=1:1:($L(LINE,U)) S Z=$P(LINE,U,I) I Z=1 D
 | 
|---|
 | 27 |  . . N TEXT
 | 
|---|
 | 28 |  . . S TEXT=$T(ATABLE+I)
 | 
|---|
 | 29 |  . . S ARRAY(I)=TEXT,ARRAY=ARRAY+1
 | 
|---|
 | 30 |  . . Q
 | 
|---|
 | 31 |  . Q
 | 
|---|
 | 32 |  Q
 | 
|---|
 | 33 | PROC ; Create report entry in file (703.1)
 | 
|---|
 | 34 |  N DA,DIK
 | 
|---|
 | 35 |  I DTO=""!(DFN="") Q
 | 
|---|
 | 36 |  S DA=0 F  S DA=$O(^MDD(703.1,"B",UNIQ,DA)) Q:'DA  I $P($G(^MDD(703.1,DA,0)),"^",5)=DFN Q
 | 
|---|
 | 37 |  Q:DA
 | 
|---|
 | 38 | P1 L +^MDD(703.1,0):0 G:'$T P1 D
 | 
|---|
 | 39 |  .S DA=$P(^MDD(703.1,0),"^",3)+1
 | 
|---|
 | 40 |  .S $P(^MDD(703.1,0),"^",3,4)=DA_"^"_DA
 | 
|---|
 | 41 |  .L -^MDD(703.1,0)
 | 
|---|
 | 42 |  .Q
 | 
|---|
 | 43 |  I $D(^MDD(703.1,DA)) G P1
 | 
|---|
 | 44 |  S ^MDD(703.1,DA,0)=UNIQ_"^"_DFN_"^"_$$HL7TFM(DATE)_"^"_INST_"^"_$G(MDD702)_"^"_HLMTIEN_"^^^P"
 | 
|---|
 | 45 |  S ^MDD(703.1,DA,.1,0)="^703.11S^0^0"
 | 
|---|
 | 46 |  S MDIEN=DA
 | 
|---|
 | 47 |  S DIK="^MDD(703.1," D IX1^DIK
 | 
|---|
 | 48 |  Q
 | 
|---|
 | 49 |  ;
 | 
|---|
 | 50 | HL7TFM(MDDATE) ; Convert an HL7 Date to FM
 | 
|---|
 | 51 |  N MDDT,MDYR
 | 
|---|
 | 52 |  S MDYR=$E(MDDATE,1,4)
 | 
|---|
 | 53 |  S MDYR=MDYR-1700
 | 
|---|
 | 54 |  S MDDT=MDYR_$E(MDDATE,5,8)
 | 
|---|
 | 55 |  I $L(MDDATE)>8 S MDDT=MDDT_"."_$E(MDDATE,9,14)
 | 
|---|
 | 56 |  Q MDDT
 | 
|---|
 | 57 | REINDX ; Re-index record
 | 
|---|
 | 58 |  S ^MDD(703.1,DA,.1,DZ,.2,0)="^^"_LN_"^"_LN_"^"_DTO
 | 
|---|
 | 59 |  S DIK="^MDD(703.1," D IX1^DIK
 | 
|---|
 | 60 |  D:ZCODE="C" GENACK^MDHL7X
 | 
|---|
 | 61 |  Q
 | 
|---|
 | 62 | ATABLE ;;This is a table of all the processing routines for devices
 | 
|---|
 | 63 |  ;;PROCESS UNC;.301;UNC^MDHL7U1;3;
 | 
|---|
 | 64 |  ;;PROCESS TEXT;.302;TEXT^MDHL7U2;2;
 | 
|---|
 | 65 |  ;;PROCESS URL;.303;URL^MDHL7U1;4;
 | 
|---|
 | 66 |  ;;PROCESS DLL;.304;DDL^MDHL7U1;6;
 | 
|---|
 | 67 |  ;;PROCESS UUENCODE;.305;UUEN^MDHL7U1;5;
 | 
|---|
 | 68 |  ;;PROCESS XML;.306;XML^MDHL7U1;7;
 | 
|---|
 | 69 |  ;;PROCESS XMS;.307;XMS^MDHL7U1;8;
 | 
|---|