Comments (3)
Phone numbers
Storing/validating the country calling code separately seems appropriate. I'm uncertain why the ISO code for the country is there as well, though. It seems like this is superfluous information when it comes to the phone number.
The ISO country code could potentially be considered an alternative way to represent the same information, and the mapping of ISO 3166 to the calling code could be done at runtime (by hardcoding the mapping elsewhere in CARP core). However, this won't work since this doesn't seem to be a 1-to-1 mapping. The Dominican Republic uses multiple calling codes, as well as Puerto Rico.
ok - we can drop the ISO code.
For the actual number, I wouldn't store it as a
string
simply because it can be pretty-printed. The data format should be strict; if only numbers are allowed, only allow numbers (do verify that assumption, though!).
I think there are many numbers that are non-digits. For instance, you can type #
and -
in many speed dialing systems. For example, when calling a Zoom number or answering machine.
Informed consent
I suggest you make a separate issue for that, and keep this issue focused on phone numbers, so that the discussions can remain more focused.
I agree.
from carp.core-kotlin.
Phone numbers
Storing/validating the country calling code separately seems appropriate. I'm uncertain why the ISO code for the country is there as well, though. It seems like this is superfluous information when it comes to the phone number.
The ISO country code could potentially be considered an alternative way to represent the same information, and the mapping of ISO 3166 to the calling code could be done at runtime (by hardcoding the mapping elsewhere in CARP core). However, this won't work since this doesn't seem to be a 1-to-1 mapping. The Dominican Republic uses multiple calling codes, as well as Puerto Rico.
The ISO country code is likely relevant for other input data, such as the country of residence.
For the actual number, I wouldn't store it as a string
simply because it can be pretty-printed. The data format should be strict; if only numbers are allowed, only allow numbers (do verify that assumption, though!). Allowing more flexible input is something which can be achieved by helper functions called by the UI. See MACAddress
as an example which has a single strictly typed persisted value, but more flexible parse
method for initialization.
Informed consent
I suggest you make a separate issue for that, and keep this issue focused on phone numbers, so that the discussions can remain more focused.
from carp.core-kotlin.
I split off the informed consent issue here.
from carp.core-kotlin.
Related Issues (20)
- Should `DataStreamService.openDataStreams` not fail for existing streams?
- Automatically bundle RPC example requests in releases
- Implement unit of work pattern for repositories HOT 1
- `PrimaryDeviceDeployment.lastUpdatedOn` is only accessible in Kotlin
- Can logged in `participantId` be modeled in client's `StudyStatus`?
- Storing `triggerId` and `deviceRoleName` in `TriggeredTask` is redundant HOT 2
- Should `DeviceRegistration` include freeform specification data? HOT 7
- `StudyStatus.Configuring.canGoLive` should check for more data HOT 6
- Can't find device with role name 'location_service' in snapshot. HOT 2
- Change invitations after study has gone live
- Use new JSON unquoted literal in `UnknownPolymorphicSerializer`
- TypeScript types passed between modules cause incompatible type warning requiring cast to `any` HOT 1
- Deserializing Measurement fails when using custom data types HOT 5
- TypeScript export for `Nullable` is missing HOT 7
- Need to know the version tag for a StudyProtocolSnapshot HOT 1
- Redundant data type descriptors on data stream data points
- Add informed consent input data type HOT 2
- Add Social Security Number as Input Data Type HOT 4
- Inherited properties are missing from StudyProtocolSnapshot TS class
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from carp.core-kotlin.