| 1 | QACI2A ; OAKOIFO/TKW - DATA MIGRATION - BUILD LEGACY DATA TO BE MIGRATED (CONT.) ;10/26/06  16:42
 | 
|---|
| 2 |  ;;2.0;Patient Representative;**19**;07/25/1995;Build 55
 | 
|---|
| 3 | PARVISN(PARENT,VISNNAME) ; Get Parent Station Number and VISN Name for a Station
 | 
|---|
| 4 |  N I,QACPAR
 | 
|---|
| 5 |  ; Get parent institution IEN from QAC SITE PARAMETERS file entry
 | 
|---|
| 6 |  S PARENT=$P($G(^QA(740,1,0)),"^"),VISNNAME=""
 | 
|---|
| 7 |  Q:'PARENT
 | 
|---|
| 8 |  ; Retrieve VISN name
 | 
|---|
| 9 |  D PARENT^XUAF4("QACPAR","`"_PARENT,1)
 | 
|---|
| 10 |  S I=$O(QACPAR("P",0)) I 'I S PARENT="" Q
 | 
|---|
| 11 |  S VISNNAME=$P(QACPAR("P",I),"^")
 | 
|---|
| 12 |  ; Get station number for parent station
 | 
|---|
| 13 |  S PARENT=$$STA^XUAF4(PARENT) S:PARENT="" VISNNAME=""
 | 
|---|
| 14 |  Q
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 | ASK(FLAG) ; Question Confirming that User want to run this option
 | 
|---|
| 17 |  W !!,"This option builds temporary globals used to migrate all legacy data",!,"from the old Patient Representative system to the new Patient Advocate",!,"Tracking System (PATS).",!
 | 
|---|
| 18 |  ;I $G(FLAG)="X" D
 | 
|---|
| 19 |  ;. W !,"** This is the option to completely restart the migration process . **"
 | 
|---|
| 20 |  ;. W !,"If data was migrated in error, the PATS Production Database Manager",!,"should delete the data from PATS prior to running this option.",!
 | 
|---|
| 21 |  ;. Q
 | 
|---|
| 22 |  N DIR S DIR(0)="YO",DIR("A")="Are you sure",DIR("B")="YES"
 | 
|---|
| 23 |  S DIR("?",1)="This option reads through all of the ROCs. ROCs that have already been migrated"
 | 
|---|
| 24 |  S DIR("?",2)="to PATS will not be moved to the staging area again. ROCs are checked for"
 | 
|---|
| 25 |  S DIR("?",3)="data errors. Any ROCs with errors will not be moved to the staging area, and"
 | 
|---|
| 26 |  S DIR("?",4)="will be displayed on an error report at the end of the process."
 | 
|---|
| 27 |  S DIR("?",5)=""
 | 
|---|
| 28 |  S DIR("?",6)="Once ROCs have been moved to the staging area, they are ready to be migrated"
 | 
|---|
| 29 |  S DIR("?")="into PATS."
 | 
|---|
| 30 |  D ^DIR
 | 
|---|
| 31 |  Q Y
 | 
|---|
| 32 |  ;
 | 
|---|
| 33 | CEMOCTS ; Build mapping lists for contacting_entity, method_of_contact, treatment_status.
 | 
|---|
| 34 |  S MOC("P")=1,MOC("W")=2,MOC("V")=2,MOC("I")=3,MOC("L")=4,MOC("S")=5
 | 
|---|
| 35 |  Q:QACI0
 | 
|---|
| 36 |  S CE("PA")=1,CE("RE")=2,CE("FR")=3,CE("CO")=4,CE("VH")=5,CE("VO")=6,CE("AT")=7,CE("DI")=8,CE("ST")=9,CE("OT")=10
 | 
|---|
| 37 |  S TS("I")=6,TS("O")=7,TS("D")=8,TS("N")=9,TS("L")=10,TS("E")=11,TS("H")=12
 | 
|---|
| 38 |  Q
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 | BLDISS ; Build a list of migrated National Issue Codes.
 | 
|---|
| 41 |  K ^XTMP("QACMIGR","ISS","D")
 | 
|---|
| 42 |  ; Count of national issue codes to migrate=59
 | 
|---|
| 43 |  S ^XTMP("QACMIGR","ISS","D")=59
 | 
|---|
| 44 |  N I
 | 
|---|
| 45 |  F I=1:1 S X=$P($T(LIST+I),";",3) Q:X=""  S ^XTMP("QACMIGR","ISS","D",X)=""
 | 
|---|
| 46 |  Q
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 | BLDCC(STATION,PATSCNT) ; Build list of all Congressional Contacts to migrate
 | 
|---|
| 49 |  N CCIEN,CCCNT,CC0,X,CCDNM
 | 
|---|
| 50 |  S CCCNT=0
 | 
|---|
| 51 |  F CCIEN=0:0 S CCIEN=$O(^QA(745.4,CCIEN)) Q:'CCIEN  S CC0=$G(^(CCIEN,0)) D
 | 
|---|
| 52 |  . S CCNAME=$P(CC0,"^")
 | 
|---|
| 53 |  . Q:$D(^XTMP("QACMIGR","CC","D",CCIEN))
 | 
|---|
| 54 |  . S CCDNM=$E(CCNAME,1,20) S:$L(CCNAME)>20 CCDNM=CCDNM_"..."
 | 
|---|
| 55 |  . I $$TXTERR^QACI2C(CCNAME,60,0,1) D  Q
 | 
|---|
| 56 |  .. D ERREF^QACI2C("CC",CCIEN,CCDNM_" - Office or Person Name invalid") Q
 | 
|---|
| 57 |  . S X=$P(CC0,"^",2) I X]"",X'=1,X'=0 D  Q
 | 
|---|
| 58 |  .. D ERREF^QACI2C("CC",CCIEN,CCDNM_" - 'Inactive' flag is invalid") Q
 | 
|---|
| 59 |  . S ^XTMP("QACMIGR","CC","U",CCIEN)=CCIEN_"^"_STATION_"^"_CCNAME_"^"_X
 | 
|---|
| 60 |  . S CCCNT=CCCNT+1 Q
 | 
|---|
| 61 |  S PATSCNT("CC")=CCCNT
 | 
|---|
| 62 |  Q
 | 
|---|
| 63 |  ;
 | 
|---|
| 64 | BLDFSOS(FSOSIEN,FSOSNAME,QACI0,PATSCNT) ; Check for errors, build data for a single Facility Service or Section
 | 
|---|
| 65 |  Q:$D(^XTMP("QACMIGR","FSOS","E",FSOSIEN))
 | 
|---|
| 66 |  Q:$D(^XTMP("QACMIGR","FSOS","U",FSOSIEN))
 | 
|---|
| 67 |  I $$TXTERR^QACI2C(FSOSNAME,50,0,1) D  Q
 | 
|---|
| 68 |  . N Y S Y=$L(FSOSNAME)
 | 
|---|
| 69 |  . S FSOSNAME=$E(FSOSNAME,1,30) I Y>30 S FSOSNAME=FSOSNAME_"..."
 | 
|---|
| 70 |  . D ERREF^QACI2C("FSOS",FSOSIEN,FSOSNAME_" - Name invalid") Q
 | 
|---|
| 71 |  ; Quit if called from ^QACI0 to just print the error report
 | 
|---|
| 72 |  Q:QACI0
 | 
|---|
| 73 |  ; Quite if fsos has already migrated
 | 
|---|
| 74 |  Q:$D(^XTMP("QACMIGR","FSOS","D",FSOSIEN))
 | 
|---|
| 75 |  S ^XTMP("QACMIGR","FSOS","U",FSOSIEN)=FSOSIEN_"^"_FSOSNAME
 | 
|---|
| 76 |  S PATSCNT("FSOS")=PATSCNT("FSOS")+1
 | 
|---|
| 77 |  Q
 | 
|---|
| 78 |  ;
 | 
|---|
| 79 | ERROC(OLDROC,MSG) ; Record an error on a ROC
 | 
|---|
| 80 |  Q:MSG=""
 | 
|---|
| 81 |  N ERRCNT S ERRCNT=$O(^XTMP("QACMIGR","ROC","E",OLDROC_" ","A"),-1)+1
 | 
|---|
| 82 |  S ^XTMP("QACMIGR","ROC","E",OLDROC_" ",ERRCNT)=MSG
 | 
|---|
| 83 |  I ERRCNT=1 D
 | 
|---|
| 84 |  . N I S I=$O(^QA(745.1,"B",OLDROC,0)) Q:'I
 | 
|---|
| 85 |  . S X=$P($G(^QA(745.1,I,0)),"^",6) Q:'X
 | 
|---|
| 86 |  . S X=$P($G(^VA(200,X,0)),"^") Q:X=""
 | 
|---|
| 87 |  . S $P(^XTMP("QACMIGR","ROC","E",OLDROC_" ",ERRCNT),"^",2)=X Q
 | 
|---|
| 88 |  Q
 | 
|---|
| 89 |  ;
 | 
|---|
| 90 | LIST ;; List of valid national issue codes
 | 
|---|
| 91 |  ;;AC01
 | 
|---|
| 92 |  ;;AC02
 | 
|---|
| 93 |  ;;AC03
 | 
|---|
| 94 |  ;;AC04
 | 
|---|
| 95 |  ;;AC05
 | 
|---|
| 96 |  ;;AC06
 | 
|---|
| 97 |  ;;AC07
 | 
|---|
| 98 |  ;;AC08
 | 
|---|
| 99 |  ;;AC09
 | 
|---|
| 100 |  ;;AC10
 | 
|---|
| 101 |  ;;AC11
 | 
|---|
| 102 |  ;;AC12
 | 
|---|
| 103 |  ;;CO01
 | 
|---|
| 104 |  ;;CO02
 | 
|---|
| 105 |  ;;CO03
 | 
|---|
| 106 |  ;;CO04
 | 
|---|
| 107 |  ;;CP01
 | 
|---|
| 108 |  ;;ED01
 | 
|---|
| 109 |  ;;ED02
 | 
|---|
| 110 |  ;;EM01
 | 
|---|
| 111 |  ;;EM02
 | 
|---|
| 112 |  ;;EM03
 | 
|---|
| 113 |  ;;EV01
 | 
|---|
| 114 |  ;;EV02
 | 
|---|
| 115 |  ;;EV03
 | 
|---|
| 116 |  ;;FI01
 | 
|---|
| 117 |  ;;IF01
 | 
|---|
| 118 |  ;;IF02
 | 
|---|
| 119 |  ;;IF04
 | 
|---|
| 120 |  ;;IF05
 | 
|---|
| 121 |  ;;IF06
 | 
|---|
| 122 |  ;;IF07
 | 
|---|
| 123 |  ;;IF08
 | 
|---|
| 124 |  ;;IF09
 | 
|---|
| 125 |  ;;IF10
 | 
|---|
| 126 |  ;;LL01
 | 
|---|
| 127 |  ;;LL02
 | 
|---|
| 128 |  ;;LL03
 | 
|---|
| 129 |  ;;LL04
 | 
|---|
| 130 |  ;;OP01
 | 
|---|
| 131 |  ;;OP02
 | 
|---|
| 132 |  ;;PC01
 | 
|---|
| 133 |  ;;PC02
 | 
|---|
| 134 |  ;;PR01
 | 
|---|
| 135 |  ;;PR02
 | 
|---|
| 136 |  ;;PR03
 | 
|---|
| 137 |  ;;PR04
 | 
|---|
| 138 |  ;;RE01
 | 
|---|
| 139 |  ;;RG01
 | 
|---|
| 140 |  ;;RG02
 | 
|---|
| 141 |  ;;RG03
 | 
|---|
| 142 |  ;;RI01
 | 
|---|
| 143 |  ;;RI02
 | 
|---|
| 144 |  ;;RI03
 | 
|---|
| 145 |  ;;RI04
 | 
|---|
| 146 |  ;;RI05
 | 
|---|
| 147 |  ;;SC01
 | 
|---|
| 148 |  ;;SC02
 | 
|---|
| 149 |  ;;TR01
 | 
|---|
| 150 |  ;;
 | 
|---|