Bruce,
Well, you’re seeing the code after my messing with things over a couple weeks trying isolate what was going wrong.
My understanding of .Start was to fully reset the object and I originally only had a single .Start before all the saves/loads, but in testing added it before each attempt. I did not see any behavior difference between having a single start or several.
The only “difference” between working and not working was moving the code from a routine into its own procedure. Today I’ll start backing out all the junk I added for testing.
The IMM tables are copies of TPS files. Here’s one that was ending up with a blank record. (The /threadedcontent may not be needed since I’m single-threaded/non-mdi.)
BCO_Provider_Setup FILE,DRIVER('MEMORY','/THREADEDCONTENT'),NAME('BCOPROVS.IMM'),PRE(BCO_Provider_S),BINDABLE,CREATE,THREAD !Temp IMM used during clinic creation
PK_Provider KEY(BCO_Provider_S:SysID),NOCASE,OPT,PRIMARY !
KeyProvider_OfficeID KEY(BCO_Provider_S:OfficeID),NOCASE,OPT !
KeyProvider_Name KEY(BCO_Provider_S:LastName,BCO_Provider_S:FirstName,BCO_Provider_S:MiddleInitial),DUP,NOCASE,OPT !by Last Name
KeyProvider_Initials KEY(BCO_Provider_S:Initials),NOCASE,OPT !
KeyProvider_NPI KEY(BCO_Provider_S:NPI),DUP,NOCASE !
KeyProvider_RenderingSysID KEY(BCO_Provider_S:ProviderRenderingSysID),DUP,NOCASE !
Personal_Notes MEMO(4096) !
Notes MEMO(4096) !
Record RECORD,PRE()
SysID LONG !Internal System Record Identifier
OfficeID STRING(6) !Office ID
DefaultFeeScheduleSysID LONG !Internal System Link to Fee Schedule
Inactive BYTE !Inactive
Type STRING(1) !
License STRING(15) !License
PostTitle STRING(10) !Post Title
FirstName STRING(20) !First Name
MiddleInitial STRING(1) !Middle Initial
LastName STRING(30) !Last Name
DefaultPracticeSysID LONG !
DefaultScheduleSysID LONG !
ProviderRenderingSysID LONG !
SendRenderingWithClaims BYTE !
UseSSNorEIN STRING(3) !OBSOLETE
SSN STRING(11) !OBSOLETE
EIN STRING(11) !OBSOLETE
NPI DECIMAL(10) !
SpecialtyCode SHORT !Specialty Code
SpecialtyLicenseNumber STRING(15) !
EClaimIdentifier STRING(15) !not used
EClaimSiteCode STRING(4) !not used
DefaultPlaceSysID LONG !
Initials STRING(5) !
ChargeEntry BYTE !
Referral BYTE !
Appointments BYTE !
EMR BYTE !
UseForSurgeryAssistOnly BYTE !
UserSysID LONG !link to security user sysid - Future Use
ChargeEntryOverrideReferrerSysID LONG !
TaxonomyCode STRING(10) !
DEANumber STRING(20) !
Personal_AddressZipCode STRING(10) !Address Zip Code
Personal_AddressCountry STRING(2) !
Personal_AddressState STRING(3) !Address State
Personal_AddressCity STRING(40) !Address City
Personal_AddressLine1 STRING(80) !Address Line 1
Personal_AddressLine2 STRING(80) !Address Line 2
Personal_HomeTelephone DECIMAL(10) !Home Telephone
Personal_HomeTelephoneNote STRING(40) !Home Telephone Note
Personal_WorkTelephone DECIMAL(10) !Work Telephone
Personal_WorkTelephoneNote STRING(40) !
Personal_CellTelephone DECIMAL(10) !Cell Telephone
Personal_CellTelephoneNote STRING(40) !Cell Telephone Note
Personal_OtherTelephone DECIMAL(10) !Other Telephone
Personal_OtherTelephoneNote STRING(40) !Other Extension/Note
Personal_FaxNumber DECIMAL(10) !Fax Number
Personal_FaxNumberNote STRING(40) !Notes
Personal_EmailAddress STRING(80) !
END
END
Here’s the json that is produced now in a working state. (I do not believe it to be any different from before but will double-check that.)
[
{
"BCO_PROVIDER_S:SYSID" : 1,
"BCO_PROVIDER_S:OFFICEID" : "1",
"BCO_PROVIDER_S:DEFAULTFEESCHEDULESYSID" : 0,
"BCO_PROVIDER_S:INACTIVE" : 0,
"BCO_PROVIDER_S:TYPE" : "D",
"BCO_PROVIDER_S:LICENSE" : "LICNUMHERE",
"BCO_PROVIDER_S:POSTTITLE" : "POSTTITLE",
"BCO_PROVIDER_S:FIRSTNAME" : "DAVID",
"BCO_PROVIDER_S:MIDDLEINITIAL" : "",
"BCO_PROVIDER_S:LASTNAME" : "JUNG",
"BCO_PROVIDER_S:DEFAULTPRACTICESYSID" : 0,
"BCO_PROVIDER_S:DEFAULTSCHEDULESYSID" : 0,
"BCO_PROVIDER_S:PROVIDERRENDERINGSYSID" : 0,
"BCO_PROVIDER_S:SENDRENDERINGWITHCLAIMS" : 0,
"BCO_PROVIDER_S:USESSNOREIN" : "",
"BCO_PROVIDER_S:SSN" : "",
"BCO_PROVIDER_S:EIN" : "",
"BCO_PROVIDER_S:NPI" : 1234567890,
"BCO_PROVIDER_S:SPECIALTYCODE" : 0,
"BCO_PROVIDER_S:SPECIALTYLICENSENUMBER" : "",
"BCO_PROVIDER_S:ECLAIMIDENTIFIER" : "",
"BCO_PROVIDER_S:ECLAIMSITECODE" : "",
"BCO_PROVIDER_S:DEFAULTPLACESYSID" : 0,
"BCO_PROVIDER_S:INITIALS" : "",
"BCO_PROVIDER_S:CHARGEENTRY" : 1,
"BCO_PROVIDER_S:REFERRAL" : 0,
"BCO_PROVIDER_S:APPOINTMENTS" : 0,
"BCO_PROVIDER_S:EMR" : 0,
"BCO_PROVIDER_S:USEFORSURGERYASSISTONLY" : 0,
"BCO_PROVIDER_S:USERSYSID" : 0,
"BCO_PROVIDER_S:CHARGEENTRYOVERRIDEREFERRERSYSID" : 0,
"BCO_PROVIDER_S:TAXONOMYCODE" : "TAXCDHERE",
"BCO_PROVIDER_S:DEANUMBER" : "",
"BCO_PROVIDER_S:PERSONAL_ADDRESSZIPCODE" : "",
"BCO_PROVIDER_S:PERSONAL_ADDRESSCOUNTRY" : "",
"BCO_PROVIDER_S:PERSONAL_ADDRESSSTATE" : "",
"BCO_PROVIDER_S:PERSONAL_ADDRESSCITY" : "",
"BCO_PROVIDER_S:PERSONAL_ADDRESSLINE1" : "",
"BCO_PROVIDER_S:PERSONAL_ADDRESSLINE2" : "",
"BCO_PROVIDER_S:PERSONAL_HOMETELEPHONE" : 0,
"BCO_PROVIDER_S:PERSONAL_HOMETELEPHONENOTE" : "",
"BCO_PROVIDER_S:PERSONAL_WORKTELEPHONE" : 0,
"BCO_PROVIDER_S:PERSONAL_WORKTELEPHONENOTE" : "",
"BCO_PROVIDER_S:PERSONAL_CELLTELEPHONE" : 0,
"BCO_PROVIDER_S:PERSONAL_CELLTELEPHONENOTE" : "",
"BCO_PROVIDER_S:PERSONAL_OTHERTELEPHONE" : 0,
"BCO_PROVIDER_S:PERSONAL_OTHERTELEPHONENOTE" : "",
"BCO_PROVIDER_S:PERSONAL_FAXNUMBER" : 0,
"BCO_PROVIDER_S:PERSONAL_FAXNUMBERNOTE" : "",
"BCO_PROVIDER_S:PERSONAL_EMAILADDRESS" : "",
"BCO_PROVIDER_S:PERSONAL_NOTES" : "",
"BCO_PROVIDER_S:NOTES" : ""
}
]
Putting the json into jfilescodes gives me a queue, has the labels as name(), all the numeric types are reasl, and the two memos become relatively short strings. I’m not using the memos in this situation, so those don’t matter. I don’t see any surprises.