[613] | 1 | ECXPUTL ;ALB/GTS - Utilities for DSS Prosthetics Extract ;July 15, 1998
|
---|
| 2 | ;;3.0;DSS EXTRACTS;**9,14**;Dec 22, 1997
|
---|
| 3 | ;
|
---|
| 4 | PDIV() ; Prompt the user for a division and return its IEN
|
---|
| 5 | ;
|
---|
| 6 | ; Output:
|
---|
| 7 | ; ECXDIV
|
---|
| 8 | ; Successful - Institution file IEN for the selected division
|
---|
| 9 | ; Unsuccessful - 0
|
---|
| 10 | ;
|
---|
| 11 | N ECXDIV,ECTMP,ECDIVCT,ECDIVSXS,ECDIVLP
|
---|
| 12 | S ECXDIV=0
|
---|
| 13 | S ECDIVSXS=$$DIV4^XUSER(.ECTMP,DUZ) ;**Set up array of user divisions
|
---|
| 14 | ;
|
---|
| 15 | ;** If the user doesn't have divisions setup
|
---|
| 16 | I 'ECDIVSXS DO
|
---|
| 17 | .S DIR(0)="FAO^1:1"
|
---|
| 18 | .S DIR("A",1)="You do not have any divisions defined in your user set up."
|
---|
| 19 | .S DIR("A",2)="Contact an ADPAC or IRM for assistance."
|
---|
| 20 | .S DIR("A")="Hit Return to continue."
|
---|
| 21 | .D ^DIR K DIR,X,Y
|
---|
| 22 | ;
|
---|
| 23 | ;** If the user does have divisions setup
|
---|
| 24 | I ECDIVSXS DO
|
---|
| 25 | .S (ECDIVCT,ECDIVLP)=0
|
---|
| 26 | .F S ECDIVLP=$O(ECTMP(ECDIVLP)) Q:(+ECDIVLP=0) DO
|
---|
| 27 | ..I $D(^RMPR(669.9,"C",ECDIVLP)) S ECDIVCT=ECDIVCT+1
|
---|
| 28 | ..I '$D(^RMPR(669.9,"C",ECDIVLP)) K ECTMP(ECDIVLP)
|
---|
| 29 | .I 'ECDIVCT DO
|
---|
| 30 | ..S DIR(0)="FAO^1:1"
|
---|
| 31 | ..S DIR("A",1)="Your division is not set up as a prosthetic division."
|
---|
| 32 | ..S DIR("A")="Hit Return to continue."
|
---|
| 33 | ..D ^DIR K DIR,X,Y
|
---|
| 34 | .I ECDIVCT=1 DO
|
---|
| 35 | ..S ECXDIV=$O(ECTMP(""))
|
---|
| 36 | ..K ECXDIC S DA=ECXDIV,DIC="^DIC(4,",DIQ(0)="I",DIQ="ECXDIC",DR=".01;99"
|
---|
| 37 | ..D EN^DIQ1 S ECXSNUM=$G(ECXDIC(4,DA,99,"I"))
|
---|
| 38 | ..S ECXSNAME=$G(ECXDIC(4,DA,.01,"I"))
|
---|
| 39 | ..K DIC,DIQ,DA,DR,ECXDIC
|
---|
| 40 | ..I $L(ECXSNUM)>3 DO
|
---|
| 41 | ...K ECTMP(ECXDIV)
|
---|
| 42 | ...S DIR(0)="FAO^1:1"
|
---|
| 43 | ...S DIR("A",1)="Your division ("_ECXSNUM_") is not a prosthetic primary division."
|
---|
| 44 | ...S DIR("A",2)="Note that the Station Number ("_ECXSNUM_") is longer than 3 characters"
|
---|
| 45 | ...S DIR("A",3)=" for the Station "_ECXSNAME_"."
|
---|
| 46 | ...S DIR("A",4)="Check with IRM to identify the primary division and add it to your New Person"
|
---|
| 47 | ...S DIR("A",5)=" file entry."
|
---|
| 48 | ...S DIR("A")="Hit Return to continue."
|
---|
| 49 | ...D ^DIR K DIR,X,Y
|
---|
| 50 | ...S ECXDIV=0
|
---|
| 51 | ..K ECXSNUM,ECXSNAME
|
---|
| 52 | .I ECDIVCT>1 DO
|
---|
| 53 | ..S DIC("A")="Select Prosthetic Division: ",DIC(0)="AEQM",DIC="^DIC(4,"
|
---|
| 54 | ..S DIC("S")="I $D(ECTMP(+Y))&(+$L($P($G(^DIC(4,+Y,99)),""^"",1))=3)" D ^DIC
|
---|
| 55 | ..I '$D(DTOUT),'$D(DUOUT),Y>0 S ECXDIV=+Y
|
---|
| 56 | ..I $D(DTOUT)!($D(DUOUT))!(Y<1) DO
|
---|
| 57 | ...S DIR(0)="FAO^1:1"
|
---|
| 58 | ...S DIR("A",1)="You did not select a prosthetic division."
|
---|
| 59 | ...S DIR("A")="Hit Return to continue."
|
---|
| 60 | ...D ^DIR K DIR,X,Y
|
---|
| 61 | ...S ECXDIV=0
|
---|
| 62 | Q ECXDIV
|
---|
| 63 | ;
|
---|
| 64 | PDIV2(DUZ) ; prompt user for any prosthetics division
|
---|
| 65 | ; input
|
---|
| 66 | ; DUZ - ien in file #200
|
---|
| 67 | ; Output:
|
---|
| 68 | ; ECXDIV
|
---|
| 69 | ; successful - ien file #4^station number^station name
|
---|
| 70 | ; unsuccessful - 0
|
---|
| 71 | ;
|
---|
| 72 | N ECXDIV,ECTMP,ECDIVCT,ECDIVSXS,ECDIVLP
|
---|
| 73 | S ECXDIV=0
|
---|
| 74 | S ECDIVSXS=$$DIV4^XUSER(.ECTMP,DUZ) ;**Set up array of user divisions
|
---|
| 75 | ;If the user doesn't have divisions setup
|
---|
| 76 | I 'ECDIVSXS D
|
---|
| 77 | .S DIR(0)="FAO^1:1"
|
---|
| 78 | .S DIR("A",1)="You do not have any divisions defined in your user set up."
|
---|
| 79 | .S DIR("A",2)="Contact an ADPAC or IRM for assistance."
|
---|
| 80 | .S DIR("A")="Hit Return to continue."
|
---|
| 81 | .D ^DIR K DIR,X,Y
|
---|
| 82 | ;If the user does have divisions setup
|
---|
| 83 | I ECDIVSXS D
|
---|
| 84 | .S (ECDIVCT,ECDIVLP)=0
|
---|
| 85 | .F S ECDIVLP=$O(ECTMP(ECDIVLP)) Q:(+ECDIVLP=0) D
|
---|
| 86 | ..I $D(^RMPR(669.9,"C",ECDIVLP)) S ECDIVCT=ECDIVCT+1
|
---|
| 87 | ..I '$D(^RMPR(669.9,"C",ECDIVLP)) K ECTMP(ECDIVLP)
|
---|
| 88 | .I 'ECDIVCT D
|
---|
| 89 | ..S DIR(0)="FAO^1:1"
|
---|
| 90 | ..S DIR("A",1)="Your division is not set up as a prosthetic division."
|
---|
| 91 | ..S DIR("A")="Hit Return to continue."
|
---|
| 92 | ..D ^DIR K DIR,X,Y
|
---|
| 93 | .I ECDIVCT=1 D
|
---|
| 94 | ..S ECXDIV=$O(ECTMP(""))
|
---|
| 95 | ..K ECXDIC S DA=ECXDIV,DIC="^DIC(4,",DIQ(0)="I",DIQ="ECXDIC",DR=".01;99"
|
---|
| 96 | ..D EN^DIQ1
|
---|
| 97 | ..S ECXDIV=ECXDIV_U_$G(ECXDIC(4,DA,99,"I"))_U_$G(ECXDIC(4,DA,.01,"I"))
|
---|
| 98 | ..K DIC,DIQ,DA,DR,ECXDIC
|
---|
| 99 | .I ECDIVCT>1 D
|
---|
| 100 | ..S DIC("A")="Select Prosthetic Division: ",DIC(0)="AEQM",DIC="^DIC(4,"
|
---|
| 101 | ..S DIC("S")="I $D(ECTMP(+Y))" D ^DIC
|
---|
| 102 | ..I $D(DTOUT)!($D(DUOUT))!(Y<1) D Q
|
---|
| 103 | ...S DIR(0)="FAO^1:1"
|
---|
| 104 | ...S DIR("A",1)="You did not select a prosthetic division."
|
---|
| 105 | ...S DIR("A")="Hit Return to continue."
|
---|
| 106 | ...D ^DIR K DIR,X,Y
|
---|
| 107 | ...S ECXDIV=0
|
---|
| 108 | ..I '$D(DTOUT),'$D(DUOUT),Y>0 S ECXDIV=+Y D Q
|
---|
| 109 | ...K ECXDIC S DA=ECXDIV,DIC="^DIC(4,",DIQ(0)="I",DIQ="ECXDIC",DR=".01;99"
|
---|
| 110 | ...D EN^DIQ1
|
---|
| 111 | ...S ECXDIV=ECXDIV_U_$G(ECXDIC(4,DA,99,"I"))_U_$G(ECXDIC(4,DA,.01,"I"))
|
---|
| 112 | ...K DIC,DIQ,DA,DR,ECXDIC
|
---|
| 113 | Q ECXDIV
|
---|
| 114 | ;
|
---|
| 115 | PDIV3(DUZ,PRIME,DIV) ; user divisions in primary prosthetics division
|
---|
| 116 | ; input
|
---|
| 117 | ; DUZ - ien in file #200 (required)
|
---|
| 118 | ; PRIME - primary division - ien file #4^station number^station name (required)
|
---|
| 119 | ; DIV - array passed by reference (required)
|
---|
| 120 | ; Output:
|
---|
| 121 | ; DIV - array of 1 or more divisions associated with primary division
|
---|
| 122 | ; successful - ien file #4^station number^station name
|
---|
| 123 | ; unsuccessful - 0
|
---|
| 124 | ;
|
---|
| 125 | N ECXDIV,ECTMP,ECDIVCT,ECDIVSXS,ECDIVLP
|
---|
| 126 | S DIV(1)=0
|
---|
| 127 | S ECDIVSXS=$$DIV4^XUSER(.ECTMP,DUZ) ;**Set up array of user divisions
|
---|
| 128 | ;if the user doesn't have divisions setup
|
---|
| 129 | I 'ECDIVSXS Q
|
---|
| 130 | ;if the user does have divisions setup
|
---|
| 131 | I ECDIVSXS D
|
---|
| 132 | .S (ECDIVCT,ECDIVLP)=0
|
---|
| 133 | .F S ECDIVLP=$O(ECTMP(ECDIVLP)) Q:(+ECDIVLP=0) D
|
---|
| 134 | ..I '$D(^RMPR(669.9,"C",ECDIVLP)) K ECTMP(ECDIVLP)
|
---|
| 135 | ..I $D(^RMPR(669.9,"C",ECDIVLP)) D
|
---|
| 136 | ...S DA=ECDIVLP,DIC="^DIC(4,",DIQ(0)="I",DIQ="ECXDIC",DR=".01;99" D EN^DIQ1
|
---|
| 137 | ...;does this division belong to primary division?
|
---|
| 138 | ...I $E($G(ECXDIC(4,DA,99,"I")),1,3)'=$P(PRIME,U,2) K ECTMP(ECDIVLP) Q
|
---|
| 139 | ...S ECDIVCT=ECDIVCT+1
|
---|
| 140 | ...S DIV(ECDIVCT)=ECDIVLP_U_$G(ECXDIC(4,DA,99,"I"))_U_$G(ECXDIC(4,DA,.01,"I"))
|
---|
| 141 | K DIC,DIQ,DA,DR,ECXDIC,X,Y
|
---|
| 142 | Q
|
---|