| 1 | MCARDSS ;WISC/RMP-DECISION SUPPORT INTERFACE ;5/5/95  08:01
 | 
|---|
| 2 |  ;;2.3;Medicine;;09/13/1996
 | 
|---|
| 3 | START(STDATE,ENDATE) ;REMOVE NEW OF SAME AND HARD SET OF SAME
 | 
|---|
| 4 |  N TYPE,COUNT,CPTIEN,FILE,CDATE,IEN
 | 
|---|
| 5 |  N MCARP,MCDHD,MCESKEY,MCESON,MCESS,MCESSES,MCPATFLD,MCPRO,MCOPT
 | 
|---|
| 6 |  N PROC,OPTION,DIR,Y,DTOUT,DIRUT,DIROUT,DUOUT,DHIT,DIOEND,DIROUR
 | 
|---|
| 7 |  S (MCARP)="",COUNT=0
 | 
|---|
| 8 |  S TYPE="" ;"P" ;should be third input parameter
 | 
|---|
| 9 |  K ^TMP($J)
 | 
|---|
| 10 |  F  S MCARP=$O(^MCAR(694.8,"PS",MCARP)) Q:MCARP'?1N.N  D
 | 
|---|
| 11 |  .S CPTIEN="" F  S CPTIEN=$O(^MCAR(694.8,"PS",MCARP,CPTIEN)) Q:CPTIEN'?1N.N  D
 | 
|---|
| 12 |  ..N CPT
 | 
|---|
| 13 |  ..S CPT=$$CPT(CPTIEN) Q:CPT=""
 | 
|---|
| 14 |  ..D PROC(.MCARP,.MCESON,.MCESKEY,.MCPATFLD,.FILE,.MCPRO)
 | 
|---|
| 15 |  ..Q:MCESON'=1
 | 
|---|
| 16 |  ..S MCOPT=1 D PIEN
 | 
|---|
| 17 |  ..Q
 | 
|---|
| 18 |  Q
 | 
|---|
| 19 | CPT(IEN) ;
 | 
|---|
| 20 |  N TEMP,CPT
 | 
|---|
| 21 |  S CPT=""
 | 
|---|
| 22 |  I $D(^MCAR(694.8,IEN,1,0)) S TEMP=0 D
 | 
|---|
| 23 |  .F  Q:CPT?1N.N  S TEMP=$O(^MCAR(694.8,IEN,1,TEMP)) Q:TEMP'?1N.N  D
 | 
|---|
| 24 |  ..I $P($P(^(TEMP,0),U),";",2)["ICPT(" S CPT=$P($P(^(0),U),";")
 | 
|---|
| 25 |  ..Q
 | 
|---|
| 26 |  Q CPT
 | 
|---|
| 27 | PIEN ;
 | 
|---|
| 28 |  N IEN,CDATE,PROV,FMDT
 | 
|---|
| 29 |  S CDATE=$O(^MCAR(FILE,"B",STDATE),-1)
 | 
|---|
| 30 |  F  S IEN=$$NEXTD(FILE,ENDATE,.CDATE,MCOPT) Q:IEN=""  D
 | 
|---|
| 31 |  .S PROV=$P(^MCAR(FILE,IEN,"ES"),U,4)
 | 
|---|
| 32 |  .S FMDT=$P(^MCAR(FILE,IEN,0),U)
 | 
|---|
| 33 |  .Q:(+PROV=0)!(+FMDT=0)
 | 
|---|
| 34 |  .S COUNT=COUNT+1
 | 
|---|
| 35 |  .;W !,"200^2^FMDT,CPT: ",PROV_U_$$DFN(FILE,IEN,MCPATFLD)_U_FMDT_U_CPT
 | 
|---|
| 36 |  .S ^TMP($J,COUNT)=PROV_U_$$DFN(FILE,IEN,MCPATFLD)_U_FMDT_U_CPT
 | 
|---|
| 37 |  Q
 | 
|---|
| 38 | DFN(FILE,IEN,MCPATFLD) ;
 | 
|---|
| 39 |  N TEMP
 | 
|---|
| 40 |  S TEMP=$P(^DD(FILE,MCPATFLD,0),U,4)
 | 
|---|
| 41 |  Q $P(^MCAR(FILE,IEN,$P(TEMP,";")),U,$P(TEMP,";",2))
 | 
|---|
| 42 | TEST(REC,OPT,FILE) ;Screens out information
 | 
|---|
| 43 |  N STATUS,TEST
 | 
|---|
| 44 |  S STATUS=$P($G(^MCAR(FILE,REC,"ES")),U,7) S:STATUS="" STATUS="D"
 | 
|---|
| 45 |  S TEST=OPT+$S(STATUS["D":1,1:0)
 | 
|---|
| 46 |  Q $S(STATUS="S":0,OPT=3:1,TEST=1:1,TEST=3:1,1:0)
 | 
|---|
| 47 | PROC(MCARP,MCESON,MCESKEY,MCPATFLD,FILE,MCPRO) ;
 | 
|---|
| 48 |  N TEMP
 | 
|---|
| 49 |  S TEMP=$G(^MCAR(697.2,MCARP,0)),MCESS=0
 | 
|---|
| 50 |  S MCESON=+$P(TEMP,U,14),MCESKEY=$P(TEMP,U,15)
 | 
|---|
| 51 |  S MCPATFLD=$P(TEMP,U,12)
 | 
|---|
| 52 |  S MCESSES=$S(MCESON:1,1:0)
 | 
|---|
| 53 |  S FILE=$P($P(TEMP,U,2),"(",2)
 | 
|---|
| 54 |  S MCPRO=$P(TEMP,U)
 | 
|---|
| 55 |  Q
 | 
|---|
| 56 | NEXTD(FILE,ENDATE,CDATE,MCOPT) ;
 | 
|---|
| 57 |  N IEN
 | 
|---|
| 58 |  S IEN=""
 | 
|---|
| 59 |  F  Q:IEN'=""  S CDATE=$O(^MCAR(FILE,"B",CDATE)) Q:(CDATE="")!(CDATE>ENDATE)  D
 | 
|---|
| 60 |  .S IEN=$O(^MCAR(FILE,"B",CDATE,""))
 | 
|---|
| 61 |  .S:'$$TEST(IEN,MCOPT,FILE) IEN=""
 | 
|---|
| 62 |  .Q
 | 
|---|
| 63 |  Q IEN
 | 
|---|