| [613] | 1 | VAQPST04 ;ALB/JFP - PDX, POST INIT ROUTINE ;01JUN93 | 
|---|
|  | 2 | ;;1.5;PATIENT DATA EXCHANGE;;NOV 17, 1993 | 
|---|
|  | 3 | ALL ; --Creates an entry in the Segment Group file 394.84 of all segments | 
|---|
|  | 4 | I '$D(^VAT(394.71)) QUIT | 
|---|
|  | 5 | ;IF IT'S ALREADY THERE, DELETE IT | 
|---|
|  | 6 | S DA="" | 
|---|
|  | 7 | F  S DA=+$O(^VAT(394.84,"B","ALL",DA)) Q:('DA)  D | 
|---|
|  | 8 | .Q:($P(^VAT(394.84,DA,0),"^",2)=0) | 
|---|
|  | 9 | .S DIK="^VAT(394.84," | 
|---|
|  | 10 | .D ^DIK K DIK | 
|---|
|  | 11 | W !,"  Creating a segment group called ""ALL"" " | 
|---|
|  | 12 | W !,"  This group will contain all data segments" | 
|---|
|  | 13 | S DIC="^VAT(394.84,",DIC(0)="L",DLAYGO=394.84,X="ALL" | 
|---|
|  | 14 | S DIC("DR")=".02///PUBLIC" ; -- Public | 
|---|
|  | 15 | K DD,DO | 
|---|
|  | 16 | D FILE^DICN K DIC,DLAYGO,X,DINUM | 
|---|
|  | 17 | I Y=-1 QUIT | 
|---|
|  | 18 | ; -- Add segments | 
|---|
|  | 19 | S DA=$P(Y,U,1),DIE="^VAT(394.84,",SEG="" | 
|---|
|  | 20 | F  S SEG=$O(^VAT(394.71,"B",SEG)) Q:SEG=""  D S1 | 
|---|
|  | 21 | W !,"Done" | 
|---|
|  | 22 | K SEG,DA,DIE | 
|---|
|  | 23 | QUIT | 
|---|
|  | 24 | S1 ; -- Update existing entry | 
|---|
|  | 25 | W !,"    ",SEG," - added" | 
|---|
|  | 26 | S DR="10///"_SEG | 
|---|
|  | 27 | S DR(2,394.841)=".01///"_SEG | 
|---|
|  | 28 | D ^DIE K DR | 
|---|
|  | 29 | QUIT | 
|---|
|  | 30 | ; | 
|---|
|  | 31 | ; | 
|---|
|  | 32 | COP ; -- Creates entries in Segment group file from Health Summary Type file^GMT(142, | 
|---|
|  | 33 | N TMP | 
|---|
|  | 34 | I '$D(^GMT(142)) QUIT | 
|---|
|  | 35 | S DIR(0)="Y",DIR("B")="NO" | 
|---|
|  | 36 | S DIR("A")="Create entries in Segment Groups from Health Summary Type File" | 
|---|
|  | 37 | D ^DIR K DIR | 
|---|
|  | 38 | I ('Y)!($D(DUOUT))!($D(DTOUT)) QUIT | 
|---|
|  | 39 | ; | 
|---|
|  | 40 | S GRP="" | 
|---|
|  | 41 | F  S GRP=$O(^GMT(142,"B",GRP)) Q:GRP=""  D G1 | 
|---|
|  | 42 | QUIT | 
|---|
|  | 43 | ; | 
|---|
|  | 44 | G1 ; | 
|---|
|  | 45 | ;IF IT'S ALREADY THERE, DELETE IT | 
|---|
|  | 46 | S DA="" | 
|---|
|  | 47 | F  S DA=+$O(^VAT(394.84,"B",GRP,DA)) Q:('DA)  D | 
|---|
|  | 48 | .Q:($P(^VAT(394.84,DA,0),"^",2)=0) | 
|---|
|  | 49 | .S DIK="^VAT(394.84," | 
|---|
|  | 50 | .D ^DIK K DIK | 
|---|
|  | 51 | Q:(GRP="GMTS HS ADHOC OPTION") | 
|---|
|  | 52 | S ENTRY="",ENTRY=$O(^GMT(142,"B",GRP,ENTRY)) | 
|---|
|  | 53 | S DIC="^VAT(394.84,",DIC(0)="L",DLAYGO=394.84,X=GRP | 
|---|
|  | 54 | S DIC("DR")=".02///PUBLIC" ; -- Public | 
|---|
|  | 55 | K DD,DO | 
|---|
|  | 56 | D FILE^DICN K DIC,DLAYGO,X,DINUM | 
|---|
|  | 57 | I Y=-1 QUIT | 
|---|
|  | 58 | ; -- Set components within entry | 
|---|
|  | 59 | W !!,?3,GRP," <-- Segment group added, the list of components follows" | 
|---|
|  | 60 | S DA=$P(Y,U,1),DIE="^VAT(394.84,",SEGPT="" | 
|---|
|  | 61 | F  S SEGPT=$O(^GMT(142,ENTRY,1,"C",SEGPT)) Q:SEGPT=""  D S0 | 
|---|
|  | 62 | K SEG,DA,DIE | 
|---|
|  | 63 | QUIT | 
|---|
|  | 64 | ; | 
|---|
|  | 65 | S0 ; | 
|---|
|  | 66 | S SEG=$P($G(^GMT(142.1,SEGPT,0)),U,4) | 
|---|
|  | 67 | S SEGNM=$P($G(^GMT(142.1,SEGPT,0)),U,1) | 
|---|
|  | 68 | ;FILTER OUT NON-SUPPORTED COMPONENTS | 
|---|
|  | 69 | I ((SEG'="")&($D(^VAT(394.71,"C",SEG)))) D S2 | 
|---|
|  | 70 | QUIT | 
|---|
|  | 71 | ; | 
|---|
|  | 72 | S2 ; -- Update existing entry | 
|---|
|  | 73 | W !,?10,SEG | 
|---|
|  | 74 | S DR="10///"_SEG | 
|---|
|  | 75 | S DR(2,394.841)=".01///"_SEG | 
|---|
|  | 76 | ;DETERMINE IF TIME & OCCURRENCE LIMITS ARE APPLICABLE | 
|---|
|  | 77 | S TMP=$$LIMITS^VAQDBIH3(SEGPT) | 
|---|
|  | 78 | ;PUT TIME LIMIT OF 1 YEAR (IF APPLICABLE) | 
|---|
|  | 79 | S:($P(TMP,"^",1)) DR(2,394.841)=DR(2,394.841)_";.04///1Y" | 
|---|
|  | 80 | ;PUT OCCURRENCE LIMIT OF 10 (IF APPLICABLE) | 
|---|
|  | 81 | S:($P(TMP,"^",2)) DR(2,394.841)=DR(2,394.841)_";.05///10" | 
|---|
|  | 82 | D ^DIE K DR | 
|---|
|  | 83 | W ?16," - ",SEGNM | 
|---|
|  | 84 | QUIT | 
|---|
|  | 85 | ; | 
|---|
|  | 86 | END ; -- End of code | 
|---|
|  | 87 | QUIT | 
|---|