import java.util.HashMap;
import java.util.Map;
public class RecordIntegrityChecker {
/**
* Verifies the integrity of a diagnostic record by checking for required fields and data consistency.
*
* @param record A map representing the diagnostic record. Keys are field names, values are field values.
* @return True if the record is valid, false otherwise.
*/
public static boolean verifyRecord(Map<String, Object> record) {
// Check if the record is null or empty.
if (record == null || record.isEmpty()) {
System.err.println("Error: Record is null or empty.");
return false;
}
// Define required fields.
Map<String, String> requiredFields = new HashMap<>();
requiredFields.put("patientId", "required");
requiredFields.put("timestamp", "required");
requiredFields.put("deviceId", "required");
requiredFields.put("temperature", "required");
// Check for missing required fields.
for (String field : requiredFields.keySet()) {
if (!record.containsKey(field)) {
System.err.println("Error: Missing required field: " + field);
return false;
}
}
// Validate data types and ranges.
Object patientIdObj = record.get("patientId");
Object timestampObj = record.get("timestamp");
Object deviceIdObj = record.get("deviceId");
Object temperatureObj = record.get("temperature");
if (!(patientIdObj instanceof String) || patientIdObj.toString().trim().isEmpty()) {
System.err.println("Error: Invalid patientId format.");
return false;
}
if (!(timestampObj instanceof String) || timestampObj.toString().trim().isEmpty()) {
System.err.println("Error: Invalid timestamp format.");
return false;
}
if (!(deviceIdObj instanceof String) || deviceIdObj.toString().trim().isEmpty()) {
System.err.println("Error: Invalid deviceId format.");
return false;
}
if (!(temperatureObj instanceof Double)) {
System.err.println("Error: Invalid temperature format.");
return false;
}
double temperature = (Double) temperatureObj;
if (temperature < -50 || temperature > 50) {
System.err.println("Error: Temperature out of range.");
return false;
}
// Additional checks can be added here, such as:
// - Checking for valid device IDs.
// - Verifying that the timestamp is in the correct format.
// - Validating the temperature range.
// If all checks pass, the record is considered valid.
return true;
}
public static void main(String[] args) {
// Example Usage
Map<String, Object> validRecord = new HashMap<>();
validRecord.put("patientId", "12345");
validRecord.put("timestamp", "2023-10-27T10:00:00");
validRecord.put("deviceId", "sensor001");
validRecord.put("temperature", 37.5);
Map<String, Object> invalidRecordMissingField = new HashMap<>();
invalidRecordMissingField.put("timestamp", "2023-10-27T10:00:00");
invalidRecordMissingField.put("deviceId", "sensor001");
invalidRecordMissingField.put("temperature", 37.5);
Map<String, Object> invalidRecordInvalidType = new HashMap<>();
invalidRecordInvalidType.put("patientId", "12345");
invalidRecordInvalidType.put("timestamp", "2023-10-27T10:00:00");
invalidRecordInvalidType.put("deviceId", "sensor001");
invalidRecordInvalidType.put("temperature", "abc");
System.out.println("Valid record: " + verifyRecord(validRecord));
System.out.println("Invalid record (missing field): " + verifyRecord(invalidRecordMissingField));
System.out.println("Invalid record (invalid type): " + verifyRecord(invalidRecordInvalidType));
}
Add your comment